{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#导入三件套\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "% matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Time</th>\n",
       "      <th>V1</th>\n",
       "      <th>V2</th>\n",
       "      <th>V3</th>\n",
       "      <th>V4</th>\n",
       "      <th>V5</th>\n",
       "      <th>V6</th>\n",
       "      <th>V7</th>\n",
       "      <th>V8</th>\n",
       "      <th>V9</th>\n",
       "      <th>...</th>\n",
       "      <th>V21</th>\n",
       "      <th>V22</th>\n",
       "      <th>V23</th>\n",
       "      <th>V24</th>\n",
       "      <th>V25</th>\n",
       "      <th>V26</th>\n",
       "      <th>V27</th>\n",
       "      <th>V28</th>\n",
       "      <th>Amount</th>\n",
       "      <th>Class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.359807</td>\n",
       "      <td>-0.072781</td>\n",
       "      <td>2.536347</td>\n",
       "      <td>1.378155</td>\n",
       "      <td>-0.338321</td>\n",
       "      <td>0.462388</td>\n",
       "      <td>0.239599</td>\n",
       "      <td>0.098698</td>\n",
       "      <td>0.363787</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.018307</td>\n",
       "      <td>0.277838</td>\n",
       "      <td>-0.110474</td>\n",
       "      <td>0.066928</td>\n",
       "      <td>0.128539</td>\n",
       "      <td>-0.189115</td>\n",
       "      <td>0.133558</td>\n",
       "      <td>-0.021053</td>\n",
       "      <td>149.62</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.191857</td>\n",
       "      <td>0.266151</td>\n",
       "      <td>0.166480</td>\n",
       "      <td>0.448154</td>\n",
       "      <td>0.060018</td>\n",
       "      <td>-0.082361</td>\n",
       "      <td>-0.078803</td>\n",
       "      <td>0.085102</td>\n",
       "      <td>-0.255425</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.225775</td>\n",
       "      <td>-0.638672</td>\n",
       "      <td>0.101288</td>\n",
       "      <td>-0.339846</td>\n",
       "      <td>0.167170</td>\n",
       "      <td>0.125895</td>\n",
       "      <td>-0.008983</td>\n",
       "      <td>0.014724</td>\n",
       "      <td>2.69</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.358354</td>\n",
       "      <td>-1.340163</td>\n",
       "      <td>1.773209</td>\n",
       "      <td>0.379780</td>\n",
       "      <td>-0.503198</td>\n",
       "      <td>1.800499</td>\n",
       "      <td>0.791461</td>\n",
       "      <td>0.247676</td>\n",
       "      <td>-1.514654</td>\n",
       "      <td>...</td>\n",
       "      <td>0.247998</td>\n",
       "      <td>0.771679</td>\n",
       "      <td>0.909412</td>\n",
       "      <td>-0.689281</td>\n",
       "      <td>-0.327642</td>\n",
       "      <td>-0.139097</td>\n",
       "      <td>-0.055353</td>\n",
       "      <td>-0.059752</td>\n",
       "      <td>378.66</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>-0.966272</td>\n",
       "      <td>-0.185226</td>\n",
       "      <td>1.792993</td>\n",
       "      <td>-0.863291</td>\n",
       "      <td>-0.010309</td>\n",
       "      <td>1.247203</td>\n",
       "      <td>0.237609</td>\n",
       "      <td>0.377436</td>\n",
       "      <td>-1.387024</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.108300</td>\n",
       "      <td>0.005274</td>\n",
       "      <td>-0.190321</td>\n",
       "      <td>-1.175575</td>\n",
       "      <td>0.647376</td>\n",
       "      <td>-0.221929</td>\n",
       "      <td>0.062723</td>\n",
       "      <td>0.061458</td>\n",
       "      <td>123.50</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2.0</td>\n",
       "      <td>-1.158233</td>\n",
       "      <td>0.877737</td>\n",
       "      <td>1.548718</td>\n",
       "      <td>0.403034</td>\n",
       "      <td>-0.407193</td>\n",
       "      <td>0.095921</td>\n",
       "      <td>0.592941</td>\n",
       "      <td>-0.270533</td>\n",
       "      <td>0.817739</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.009431</td>\n",
       "      <td>0.798278</td>\n",
       "      <td>-0.137458</td>\n",
       "      <td>0.141267</td>\n",
       "      <td>-0.206010</td>\n",
       "      <td>0.502292</td>\n",
       "      <td>0.219422</td>\n",
       "      <td>0.215153</td>\n",
       "      <td>69.99</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   Time        V1        V2        V3        V4        V5        V6        V7  \\\n",
       "0   0.0 -1.359807 -0.072781  2.536347  1.378155 -0.338321  0.462388  0.239599   \n",
       "1   0.0  1.191857  0.266151  0.166480  0.448154  0.060018 -0.082361 -0.078803   \n",
       "2   1.0 -1.358354 -1.340163  1.773209  0.379780 -0.503198  1.800499  0.791461   \n",
       "3   1.0 -0.966272 -0.185226  1.792993 -0.863291 -0.010309  1.247203  0.237609   \n",
       "4   2.0 -1.158233  0.877737  1.548718  0.403034 -0.407193  0.095921  0.592941   \n",
       "\n",
       "         V8        V9  ...         V21       V22       V23       V24  \\\n",
       "0  0.098698  0.363787  ...   -0.018307  0.277838 -0.110474  0.066928   \n",
       "1  0.085102 -0.255425  ...   -0.225775 -0.638672  0.101288 -0.339846   \n",
       "2  0.247676 -1.514654  ...    0.247998  0.771679  0.909412 -0.689281   \n",
       "3  0.377436 -1.387024  ...   -0.108300  0.005274 -0.190321 -1.175575   \n",
       "4 -0.270533  0.817739  ...   -0.009431  0.798278 -0.137458  0.141267   \n",
       "\n",
       "        V25       V26       V27       V28  Amount  Class  \n",
       "0  0.128539 -0.189115  0.133558 -0.021053  149.62      0  \n",
       "1  0.167170  0.125895 -0.008983  0.014724    2.69      0  \n",
       "2 -0.327642 -0.139097 -0.055353 -0.059752  378.66      0  \n",
       "3  0.647376 -0.221929  0.062723  0.061458  123.50      0  \n",
       "4 -0.206010  0.502292  0.219422  0.215153   69.99      0  \n",
       "\n",
       "[5 rows x 31 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data=pd.read_csv(\"creditcard.csv\")\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 数据阐述\n",
    "* 本数据样本是已经处理过的样本[省略降维的操作]\n",
    "* time为无用数据，v1-v27具体为什么核心数据我们不关心，Amount：价格项【目前发现浮动很大】\n",
    "* class：代表业务预测：0-正常，1-欺骗\n",
    "* 说明这个一个分类的任务，我选用逻辑回归算法进行处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "count_classes=pd.value_counts(data[\"Class\"],sort=True)\n",
    "count_classes=count_classes.as_matrix()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Container object of 2 artists>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa6ab8d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#利用plt进行bar绘画 [目前看对于一个向量绘图bar图很不好用]\n",
    "x=[0,1]\n",
    "y=count_classes\n",
    "fig,axes=plt.subplots(figsize=(8,6))\n",
    "axes.bar(x,y,color='r')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#利用pandas，进行简单bar绘画【这种方式只能简单绘图】"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Frequency')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZsAAAETCAYAAADge6tNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAGbNJREFUeJzt3X+0XWV95/H3xwAVRAFLRAzBoMa2\n6FTEW6R12mqrEGgV7JIp6kjq0NLxR1ttZ0Z02UK1ztJZFVvGSguVEfAHIlalio2IWsYOKhdlgIgO\nqaLEpBANEH7Jz+/8sZ/bHi43554k7HuSk/drrbPu2d/97L2ffbnkc/ezn7tPqgpJkvr0qHF3QJI0\n+QwbSVLvDBtJUu8MG0lS7wwbSVLvDBtJUu8MG2kzknwpyW9vxXaV5Gl99GmOY52a5IND1q9O8vyF\n6Is0zC7j7oA0TJIbgP2ABwbKT6+qdePp0Y6lqp4xX5sky4DvArtW1f1990k7J69stCN4cVXtOfB6\nWNAk8Ren7ZT/bQSGjXZQSZa14aoTk3wf+EKrfyzJvyS5LcllSZ4xsM1DhsWS/FaSLw8svyjJt9q2\n7wUy5PiLkrwlyT8nuT3JlUmWztHu15J8I8mmJDcmOXVg3aOTfDDJj5LcmuSKJPsN9O07bd/fTfLK\nId+O3ZKc29quTjI1cIwbkrywvT8syXTry01JTmvNLmtfb01yR5KfT/KoJG9N8r0kN7f97zWw3xPa\nuh8l+eNZxzk1yYXt3DYBv9WOfXk7z/VJ3ptkt4H9VZLXJrm+ncfbkzy1bbMpyQWD7bXjMWy0o/tl\n4GeAI9vyZ4HlwBOArwMfGmUnSfYFPg68FdgX+GfgeUM2+UPg5cDRwOOA/wTcNUe7O4ETgL2BXwNe\nk+TYtm4lsBewFPhJ4D8Ddyd5DHA6cFRVPRb4BeCqIX15CXB+O8ZFwHs30+4vgb+sqscBTwUuaPVf\nal/3bleOlwO/1V4vAJ4C7Dmz3yQHA+8DXgns385hyaxjHQNc2Pr0Ibph0DfSfW9/HvhV4LWztlkB\nPAc4HPhvwJntGEuBZ9J9v7WDMmy0I/hk+4341iSfnLXu1Kq6s6ruBqiqs6vq9qq6BzgVeNbgb+RD\nHA18s6ourKr7gL8A/mVI+98G3lpV367O/62qH81uVFVfqqprqurBqroa+AhdQALcRxcyT6uqB6rq\nyqra1NY9CDwzye5Vtb6qVg/py5er6uKqegA4D3jWZtrdBzwtyb5VdUdVfWXIPl8JnFZV36mqO4A3\nA8e3IbGXAX9fVV+uqnuBPwFmP2Tx8qr6ZDvvu9u5faWq7q+qG4C/Gfg+zHhXVW1q53ot8Ll2/Nvo\nfol49pD+ajtn2GhHcGxV7d1ex85ad+PMmza09c42tLUJuKGt2neEYzxpcF/VPaH2xs03Zynd1c9Q\nSZ6b5ItJNiS5je7qZaY/5wGrgPOTrEvyP5LsWlV3Ar/Z2q5P8pkkPz3kMIOheBfw6M3cJzkReDrw\nrTZk9+tD9vkk4HsDy9+jm1C0Hw//Xt0FzA7ah3zvkjw9yafbEOcm4L/z8P8uNw28v3uO5T2H9Ffb\nOcNGO7rB36hfQTd880K6oZ1lrT5z7+VOYI+B9k8ceL+eLkC6DZIMLs/hRrqhqPl8mG5oa2lV7QX8\n9Ux/quq+qvrTqjqYbqjs1+mG3KiqVVX1Irphqm8BZ41wrKGq6vqqejndEOO7gAvbkN1cj35fBzx5\nYPlA4H66AFgPHDCzIsnudFdoDzncrOUz6M5jeRvGewtD7olp8hg2miSPBe6h+y17D7rfngddBfxG\nkj3S/R3MiQPrPgM8I8lvtKuC3+ehYTTb3wJvT7I8nZ9NMvsf3Jk+bayqHyc5jC4QAUjygiT/Lski\nYBPdMNcDSfZL8pIWBPcAd/DQqd9bJcl/TLK4qh4Ebm3lB4ANdMN2Txlo/hHgjUkOSrIn3ffyo21q\n9IXAi5P8Qrtp/6fMHxyPbed4R7tKe822no92LIaNJsm5dMM9PwC+Ccy+J/Ee4F66387PYWDyQFX9\nEDgOeCddWC0H/mnIsU6ju8H+Obp/RN8P7D5Hu9cCb0tyO929jQsG1j2R7h/uTcB1wD8CH6T7//KP\n6K4uNtLd25h9M31rrABWJ7mDbrLA8VX14zYM9g7gn9p9scOBs+mG+S6j+xucHwO/B9Duqfwe3aSE\n9cDtwM10wbg5/4UuaG+nu0r76CNwPtqBxA9Pk7Qt2pXPrXRDZN8dd3+0ffLKRtIWS/LiNhz5GODP\ngWv4twkZ0sMYNpK2xjF0w3zr6IYcjy+HSTSEw2iSpN55ZSNJ6p1hI0nqnU9jbfbdd99atmzZuLsh\nSTuUK6+88odVtXi+doZNs2zZMqanp8fdDUnaoST53vytHEaTJC0Aw0aS1DvDRpLUO8NGktQ7w0aS\n1DvDRpLUO8NGktQ7w0aS1Dv/qHNHEz9J9xHlg2ilBeGVjSSpd4aNJKl3ho0kqXeGjSSpd4aNJKl3\nho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aN\nJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXe9hU2SpUm+mOS6JKuT/EGrn5rkB0muaq+jB7Z5c5I1Sb6d\n5MiB+opWW5Pk5IH6QUm+muT6JB9Nslur/0RbXtPWL+vrPCVJ8+vzyuZ+4I+q6meAw4HXJTm4rXtP\nVR3SXhcDtHXHA88AVgDvS7IoySLgr4CjgIOBlw/s511tX8uBW4ATW/1E4JaqehrwntZOkjQmvYVN\nVa2vqq+397cD1wFLhmxyDHB+Vd1TVd8F1gCHtdeaqvpOVd0LnA8ckyTArwAXtu3PAY4d2Nc57f2F\nwK+29pKkMViQezZtGOvZwFdb6fVJrk5ydpJ9Wm0JcOPAZmtbbXP1nwRurar7Z9Ufsq+2/rbWfna/\nTkoynWR6w4YN23SOkqTN6z1skuwJfBx4Q1VtAs4AngocAqwH3j3TdI7Nayvqw/b10ELVmVU1VVVT\nixcvHnoekqSt12vYJNmVLmg+VFV/B1BVN1XVA1X1IHAW3TAZdFcmSwc2PwBYN6T+Q2DvJLvMqj9k\nX239XsDGR/bsJEmj6nM2WoD3A9dV1WkD9f0Hmr0UuLa9vwg4vs0kOwhYDnwNuAJY3mae7UY3ieCi\nqirgi8DL2vYrgU8N7Gtle/8y4AutvSRpDHaZv8lWex7wKuCaJFe12lvoZpMdQjesdQPwuwBVtTrJ\nBcA36Wayva6qHgBI8npgFbAIOLuqVrf9vQk4P8mfAd+gCzfa1/OSrKG7ojm+x/OUJM0j/sLfmZqa\nqunp6XF3Y35Oqntk+fMvbZMkV1bV1HztfIKAJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aN\nJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSp\nd4aNJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd4aNJKl3ho0kqXeGjSSpd72FTZKlSb6Y5Lok\nq5P8Qas/PsklSa5vX/dp9SQ5PcmaJFcnOXRgXytb++uTrByoPyfJNW2b05Nk2DEkSePR55XN/cAf\n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\nXPdbaivqD99xF3QnARx44IHDeyxJ2mpjubKpqnXt683AJ+juudzUhsBoX29uzdcCSwc2PwBYN0/9\ngDnqc/XjzKqaqqqpxYsXb+tpSZI2Y8HDJsljkjx25j1wBHAtcBEwM6NsJfCp9v4i4IQ2K+1w4LY2\nzLYKOCLJPm1iwBHAqrbu9iSHt1loJwzsS5I0BuMYRtsP+ESbjbwL8OGq+ockVwAXJDkR+D5wXGt/\nMXA0sAa4C3g1QFVtTPJ24IrW7m1VtbG9fw3wAWB34LPtJUkak3QTtjQ1NVXT09Pj7sb8/JOhR5Y/\n/9I2SXLlwJ+wbNb2NPVZkjShDBtJUu8MG0lS7wwbSVLvDBtJUu8MG0lS7wwbSVLvDBtJUu8MG0lS\n7wwbSVLvDBtJUu8MG0lS7wwbSVLvDBtJUu8MG0lS7wwbSVLvDBtJUu8MG0lS7wwbSVLvDBtJUu8M\nG0lS7wwbSVLvDBtJUu8MG0lS7wwbSVLvDBtJUu8MG0lS7wwbSVLvJjZskqxI8u0ka5KcPO7+SNLO\nbCLDJski4K+Ao4CDgZcnOXi8vZKknddEhg1wGLCmqr5TVfcC5wPHjLlPkrTT2mXcHejJEuDGgeW1\nwHNnN0pyEnBSW7wjybcXoG87i32BH467E/NKxt0DLbwd42dzx/HkURpNatjM9S9IPaxQdSZwZv/d\n2fkkma6qqXH3Q5rNn83xmNRhtLXA0oHlA4B1Y+qLJO30JjVsrgCWJzkoyW7A8cBFY+6TJO20JnIY\nraruT/J6YBWwCDi7qlaPuVs7G4cntb3yZ3MMUvWwWxmSJD2iJnUYTZK0HTFsJEm9M2wkSb2byAkC\nWlhJfpruCQ1L6P6eaR1wUVVdN9aOSdpueGWjbZLkTXSPAwrwNbpp5wE+4gNQtT1L8upx92Fn4mw0\nbZMk/w94RlXdN6u+G7C6qpaPp2fScEm+X1UHjrsfOwuH0bStHgSeBHxvVn3/tk4amyRXb24VsN9C\n9mVnZ9hoW70BuDTJ9fzbw08PBJ4GvH5svZI6+wFHArfMqgf4PwvfnZ2XYaNtUlX/kOTpdB/rsITu\nf+K1wBVV9cBYOyfBp4E9q+qq2SuSfGnhu7Pz8p6NJKl3zkaTJPXOsJEk9c6wkcYgyROTnJ/kn5N8\nM8nFSZ6e5Npx903qgxMEpAWWJMAngHOq6vhWOwSn4mqCeWUjLbwXAPdV1V/PFNpsqZmp4yRZluR/\nJ/l6e/1Cq++f5LIkVyW5NskvJlmU5ANt+Zokb1z4U5KG88pGWnjPBK6cp83NwIuq6sdJlgMfAaaA\nVwCrquodSRYBewCHAEuq6pkASfbur+vS1jFspO3TrsB72/DaA8DTW/0K4OwkuwKfrKqrknwHeEqS\n/wl8BvjcWHosDeEwmrTwVgPPmafNG4GbgGfRXdHsBlBVlwG/BPwAOC/JCVV1S2v3JeB1wN/2021p\n6xk20sL7AvATSX5nppDk54AnD7TZC1hfVQ8CrwIWtXZPBm6uqrOA9wOHJtkXeFRVfRz4Y+DQhTkN\naXQOo0kLrKoqyUuBv2gfw/Bj4Aa658zNeB/w8STHAV8E7mz15wP/Ncl9wB3ACXSPCfpfSWZ+eXxz\n7ychbSEfVyNJ6p3DaJKk3hk2kqTeGTaSpN4ZNpKk3hk2kqTeGTaSpN4ZNpKk3hk2kqTe/X+Eq6ej\nFexW+AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa6abfd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "count_classes = pd.value_counts(data['Class'], sort = True)\n",
    "count_classes.plot(kind = 'bar',color='r')\n",
    "plt.title(\"Fraud class histogram\")\n",
    "plt.xlabel(\"Class\")\n",
    "plt.ylabel(\"Frequency\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 首先图结果特征上我们发现样本极为不均匀，我们需要什么方式将该特征进行分布均匀"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 删除time特征，并且对amount进行标准化处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### reshape(-1,1)将series进行变成一列\n",
    "* a.shape=>(3,2)==> a.reshape(-1,3) -1 就代表让系统去猜测3*2=6，所以-1=6/3=2;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\sorfware_install\\python_install\\lib\\site-packages\\ipykernel_launcher.py:2: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead\n",
      "  \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>V1</th>\n",
       "      <th>V2</th>\n",
       "      <th>V3</th>\n",
       "      <th>V4</th>\n",
       "      <th>V5</th>\n",
       "      <th>V6</th>\n",
       "      <th>V7</th>\n",
       "      <th>V8</th>\n",
       "      <th>V9</th>\n",
       "      <th>V10</th>\n",
       "      <th>...</th>\n",
       "      <th>V21</th>\n",
       "      <th>V22</th>\n",
       "      <th>V23</th>\n",
       "      <th>V24</th>\n",
       "      <th>V25</th>\n",
       "      <th>V26</th>\n",
       "      <th>V27</th>\n",
       "      <th>V28</th>\n",
       "      <th>Class</th>\n",
       "      <th>normAmount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1.359807</td>\n",
       "      <td>-0.072781</td>\n",
       "      <td>2.536347</td>\n",
       "      <td>1.378155</td>\n",
       "      <td>-0.338321</td>\n",
       "      <td>0.462388</td>\n",
       "      <td>0.239599</td>\n",
       "      <td>0.098698</td>\n",
       "      <td>0.363787</td>\n",
       "      <td>0.090794</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.018307</td>\n",
       "      <td>0.277838</td>\n",
       "      <td>-0.110474</td>\n",
       "      <td>0.066928</td>\n",
       "      <td>0.128539</td>\n",
       "      <td>-0.189115</td>\n",
       "      <td>0.133558</td>\n",
       "      <td>-0.021053</td>\n",
       "      <td>0</td>\n",
       "      <td>0.244964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.191857</td>\n",
       "      <td>0.266151</td>\n",
       "      <td>0.166480</td>\n",
       "      <td>0.448154</td>\n",
       "      <td>0.060018</td>\n",
       "      <td>-0.082361</td>\n",
       "      <td>-0.078803</td>\n",
       "      <td>0.085102</td>\n",
       "      <td>-0.255425</td>\n",
       "      <td>-0.166974</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.225775</td>\n",
       "      <td>-0.638672</td>\n",
       "      <td>0.101288</td>\n",
       "      <td>-0.339846</td>\n",
       "      <td>0.167170</td>\n",
       "      <td>0.125895</td>\n",
       "      <td>-0.008983</td>\n",
       "      <td>0.014724</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.342475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.358354</td>\n",
       "      <td>-1.340163</td>\n",
       "      <td>1.773209</td>\n",
       "      <td>0.379780</td>\n",
       "      <td>-0.503198</td>\n",
       "      <td>1.800499</td>\n",
       "      <td>0.791461</td>\n",
       "      <td>0.247676</td>\n",
       "      <td>-1.514654</td>\n",
       "      <td>0.207643</td>\n",
       "      <td>...</td>\n",
       "      <td>0.247998</td>\n",
       "      <td>0.771679</td>\n",
       "      <td>0.909412</td>\n",
       "      <td>-0.689281</td>\n",
       "      <td>-0.327642</td>\n",
       "      <td>-0.139097</td>\n",
       "      <td>-0.055353</td>\n",
       "      <td>-0.059752</td>\n",
       "      <td>0</td>\n",
       "      <td>1.160686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.966272</td>\n",
       "      <td>-0.185226</td>\n",
       "      <td>1.792993</td>\n",
       "      <td>-0.863291</td>\n",
       "      <td>-0.010309</td>\n",
       "      <td>1.247203</td>\n",
       "      <td>0.237609</td>\n",
       "      <td>0.377436</td>\n",
       "      <td>-1.387024</td>\n",
       "      <td>-0.054952</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.108300</td>\n",
       "      <td>0.005274</td>\n",
       "      <td>-0.190321</td>\n",
       "      <td>-1.175575</td>\n",
       "      <td>0.647376</td>\n",
       "      <td>-0.221929</td>\n",
       "      <td>0.062723</td>\n",
       "      <td>0.061458</td>\n",
       "      <td>0</td>\n",
       "      <td>0.140534</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.158233</td>\n",
       "      <td>0.877737</td>\n",
       "      <td>1.548718</td>\n",
       "      <td>0.403034</td>\n",
       "      <td>-0.407193</td>\n",
       "      <td>0.095921</td>\n",
       "      <td>0.592941</td>\n",
       "      <td>-0.270533</td>\n",
       "      <td>0.817739</td>\n",
       "      <td>0.753074</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.009431</td>\n",
       "      <td>0.798278</td>\n",
       "      <td>-0.137458</td>\n",
       "      <td>0.141267</td>\n",
       "      <td>-0.206010</td>\n",
       "      <td>0.502292</td>\n",
       "      <td>0.219422</td>\n",
       "      <td>0.215153</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.073403</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 30 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         V1        V2        V3        V4        V5        V6        V7  \\\n",
       "0 -1.359807 -0.072781  2.536347  1.378155 -0.338321  0.462388  0.239599   \n",
       "1  1.191857  0.266151  0.166480  0.448154  0.060018 -0.082361 -0.078803   \n",
       "2 -1.358354 -1.340163  1.773209  0.379780 -0.503198  1.800499  0.791461   \n",
       "3 -0.966272 -0.185226  1.792993 -0.863291 -0.010309  1.247203  0.237609   \n",
       "4 -1.158233  0.877737  1.548718  0.403034 -0.407193  0.095921  0.592941   \n",
       "\n",
       "         V8        V9       V10     ...           V21       V22       V23  \\\n",
       "0  0.098698  0.363787  0.090794     ...     -0.018307  0.277838 -0.110474   \n",
       "1  0.085102 -0.255425 -0.166974     ...     -0.225775 -0.638672  0.101288   \n",
       "2  0.247676 -1.514654  0.207643     ...      0.247998  0.771679  0.909412   \n",
       "3  0.377436 -1.387024 -0.054952     ...     -0.108300  0.005274 -0.190321   \n",
       "4 -0.270533  0.817739  0.753074     ...     -0.009431  0.798278 -0.137458   \n",
       "\n",
       "        V24       V25       V26       V27       V28  Class  normAmount  \n",
       "0  0.066928  0.128539 -0.189115  0.133558 -0.021053      0    0.244964  \n",
       "1 -0.339846  0.167170  0.125895 -0.008983  0.014724      0   -0.342475  \n",
       "2 -0.689281 -0.327642 -0.139097 -0.055353 -0.059752      0    1.160686  \n",
       "3 -1.175575  0.647376 -0.221929  0.062723  0.061458      0    0.140534  \n",
       "4  0.141267 -0.206010  0.502292  0.219422  0.215153      0   -0.073403  \n",
       "\n",
       "[5 rows x 30 columns]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "data['normAmount'] = StandardScaler().fit_transform(data['Amount'].reshape(-1, 1))\n",
    "data=data.drop([\"Time\",\"Amount\"],axis=1)\n",
    "data.head()   "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "##### 我们发现特征amount不均衡的话我们采用什么方式进行处理？\n",
    "* 我们采用过采样\n",
    "* 我们采用下采样\n",
    "* 下采样表达的意思是：让多的样本量趋近进于小的样本量【本实例：0的样本量趋于1的样本量】\n",
    "* 过采样标的的意思是：让少的样本生成一样多的样本趋于和多样本【本实例：0的样本生成和1一样多的样本】"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 我们采用下采样样本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#构建X和y\n",
    "X=data.loc[:,data.columns!='Class']\n",
    "y=data.loc[:,data.columns=='Class']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#计算出下采样本的个数\n",
    "number_records_fraud =len(data[data['Class'] == 1]) #样本中信用卡欺诈数\n",
    "fraud_index=data[data['Class'] == 1].index \n",
    "normal_index=data[data['Class']==0].index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#现在需要从0中取个数与1中个数相等的样本\n",
    "normal_index_new=np.random.choice(normal_index,number_records_fraud, replace = False) #replace=False:是否覆盖"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#组成新下采样样本\n",
    "under_sample_index=np.concatenate([fraud_index,normal_index_new])\n",
    "under_sample=data.iloc[under_sample_index]\n",
    "under_sample_X=data.loc[under_sample_index,data.columns!='Class']\n",
    "under_sample_y=data.loc[under_sample_index,data.columns=='Class']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "under_sample_y的样本总984\n",
      "under_sample_y中0占了0.5\n",
      "under_sample_y中1占了0.5\n"
     ]
    }
   ],
   "source": [
    "print('under_sample_y的样本总{}'.format(len(under_sample_y)))\n",
    "print('under_sample_y中0占了{}'.format(len(under_sample[under_sample.Class==0])/len(under_sample_y)))\n",
    "print('under_sample_y中1占了{}'.format(len(under_sample[under_sample.Class==0])/len(under_sample_y)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "#### 注意这种情况样本比较少 ，结果存在的一些问题？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 交叉验证"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"交叉验证视图.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 进行交叉验证样本划分\n",
    "* 整体数据集进行train 和 test数据集划分\n",
    "* 下采样数据集进行train 和 test 数据集划分\n",
    "###### 为什么需要这样操作，我们最终查看模型需要在整体数据集的test上测试才能够知道整体模型的效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number transactions train dataset:  199364\n",
      "Number transactions test dataset:  85443\n",
      "Total number of transactions:  284807\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\sorfware_install\\python_install\\lib\\site-packages\\sklearn\\cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "#导入sklearn.cross_validate中样本划分函数\n",
    "from sklearn.cross_validation import train_test_split\n",
    "#help(train_test_split)\n",
    "#整体数据样本划分\n",
    "# test_size：划分比例\n",
    "# random_state:代表随机种子【0】\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n",
    "print(\"Number transactions train dataset: \", len(X_train))\n",
    "print(\"Number transactions test dataset: \", len(X_test))\n",
    "print(\"Total number of transactions: \", len(X_train)+len(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number transactions train dataset:  688\n",
      "Number transactions test dataset:  296\n",
      "Total number of transactions:  984\n"
     ]
    }
   ],
   "source": [
    "#下采用样本划分\n",
    "X_train_undersample, X_test_undersample, y_train_undersample, y_test_undersample = train_test_split(under_sample_X, under_sample_y, test_size=0.3, random_state=0)\n",
    "print(\"Number transactions train dataset: \", len(X_train_undersample))\n",
    "print(\"Number transactions test dataset: \", len(X_test_undersample))\n",
    "print(\"Total number of transactions: \", len(X_train_undersample)+len(X_test_undersample))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 精度预测不准确性"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img  src=\"精度预测欺骗性.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 对于模型评估方法我们采用recall进行评估【recall:查全率，召回率】\n",
    "* 如何计算与负样本为基数，检查出来多少个样本的recall=检查负样本个数/整体样本个数\n",
    "* 一般来说检测任务中我们一般通过recall进行模型评估\n",
    "* Recall = TP/(TP+FN)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 结果预测划分【如何区分负列和正例，我们关心的把它当做正例】\n",
    "###### 注意正负例很重要\n",
    "* 统计y与y^之间关系为【0-正例，1-负例】\n",
    "* TP：y=0 与 y^=0：把正例预测为正例[True postives]\n",
    "* FN：y=1 与 y^=1:把负例判断为负例[False negatives]\n",
    "* FP：y=1 与 y^=0 :把负列预测为正例\n",
    "* TN: y=0 与 y^=1 :把正例预测为负例"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img  src=\"统计模型评估四个分类.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Recall 计算公式就    Recall = TP/(TP+FN)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 正则化惩罚项"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"正则惩罚.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 通过sklearn进行模型构建"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression #逻辑回归的模型\n",
    "from sklearn.cross_validation import KFold, cross_val_score#交叉验证模型，KFold：交叉验证样本构建【可以将训练样本切分为多个】\n",
    "from sklearn.metrics import confusion_matrix,recall_score,classification_report #confusion_matrix 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def printing_Kfold_scores(x_train_data,y_train_data):\n",
    "    #交叉验证样本切分\n",
    "    fold = KFold(len(y_train_data),5,shuffle=False) \n",
    "\n",
    "    # Different C parameters\n",
    "    c_param_range = [0.01,0.1,1,10,100]\n",
    "\n",
    "    results_table = pd.DataFrame(index = range(len(c_param_range),2), columns = ['C_parameter','Mean recall score'])\n",
    "    results_table['C_parameter'] = c_param_range\n",
    "        \n",
    "   # the k-fold will give 2 lists: train_indices = indices[0], test_indices = indices[1]这个很重要\n",
    "    j = 0\n",
    "    #取出每一个正则惩罚项因子\n",
    "    for c_param in c_param_range:\n",
    "        print('-------------------------------------------')\n",
    "        print('C parameter: ', c_param)\n",
    "        print('-------------------------------------------')\n",
    "        print('')\n",
    "        #每个正则惩罚项对应的5个交叉验证recall，求平均值\n",
    "        recall_accs = []\n",
    "        for iteration, indices in enumerate(fold,start=1):\n",
    "            # Call the logistic regression model with a certain C parameter\n",
    "            #注意我们才赢交叉验证公式l1-> |W| ，l2->w^2/2,创建lr对象\n",
    "            lr = LogisticRegression(C = c_param, penalty = 'l1')\n",
    "            # Use the training data to fit the model. In this case, we use the portion of the fold to train the model\n",
    "            # with indices[0]. We then predict on the portion assigned as the 'test cross validation' with indices[1]\n",
    "            #为什么前面不需要转为ndarray，后面可以转为ndarray【注意，前面自动转为，后面属于pd.seies:但是需要转为ndarray】\n",
    "            #print(type(x_train_data.iloc[indices[0],:]),type(y_train_data.iloc[indices[0],:].values.ravel()))\n",
    "            lr.fit(x_train_data.iloc[indices[0],:],y_train_data.iloc[indices[0],:])#训练模型\n",
    "            # Predict values using the test indices in the training data\n",
    "            #预测交叉验证交叉验证测试集得到预测结果\n",
    "            y_pred_undersample = lr.predict(x_train_data.iloc[indices[1],:])\n",
    "            # Calculate the recall score and append it to a list for recall scores representing the current c_parameter\n",
    "            #recall_score(实际值，预测值)\n",
    "            recall_acc = recall_score(y_train_data.iloc[indices[1],:],y_pred_undersample)\n",
    "            recall_accs.append(recall_acc)\n",
    "            print('Iteration ', iteration,': recall score = ', recall_acc)\n",
    "\n",
    "        # The mean value of those recall scores is the metric we want to save and get hold of.\n",
    "        results_table.loc[j,'Mean recall score'] = np.mean(recall_accs)\n",
    "        j += 1\n",
    "        print('')\n",
    "        print('Mean recall score ', np.mean(recall_accs))\n",
    "        print('')\n",
    "    \n",
    "    print(results_table.head())\n",
    "    #idxmax最大值的index值\n",
    "    best_c = results_table.loc[results_table['Mean recall score'].idxmax()]['C_parameter']\n",
    "    \n",
    "    # Finally, we can check which C parameter is the best amongst the chosen.\n",
    "    print('*********************************************************************************')\n",
    "    print('Best model to choose from cross validation is with C111 parameter = ', best_c)\n",
    "    print('*********************************************************************************')\n",
    "    \n",
    "    return best_c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-------------------------------------------\n",
      "C parameter:  0.01\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.958904109589\n",
      "Iteration  2 : recall score =  0.931506849315\n",
      "Iteration  3 : recall score =  1.0\n",
      "Iteration  4 : recall score =  0.972972972973\n",
      "Iteration  5 : recall score =  0.984848484848\n",
      "\n",
      "Mean recall score  0.969646483345\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  0.1\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.849315068493\n",
      "Iteration  2 : recall score =  0.86301369863\n",
      "Iteration  3 : recall score =  0.932203389831\n",
      "Iteration  4 : recall score =  0.945945945946\n",
      "Iteration  5 : recall score =  0.909090909091\n",
      "\n",
      "Mean recall score  0.899913802398\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  1\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.876712328767\n",
      "Iteration  2 : recall score =  0.876712328767\n",
      "Iteration  3 : recall score =  0.949152542373\n",
      "Iteration  4 : recall score =  0.945945945946\n",
      "Iteration  5 : recall score =  0.893939393939\n",
      "\n",
      "Mean recall score  0.908492507958\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  10\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.876712328767\n",
      "Iteration  2 : recall score =  0.876712328767\n",
      "Iteration  3 : recall score =  0.966101694915\n",
      "Iteration  4 : recall score =  0.932432432432\n",
      "Iteration  5 : recall score =  0.909090909091\n",
      "\n",
      "Mean recall score  0.912209938795\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  100\n",
      "-------------------------------------------\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\sorfware_install\\python_install\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration  1 : recall score =  0.876712328767\n",
      "Iteration  2 : recall score =  0.876712328767\n",
      "Iteration  3 : recall score =  0.966101694915\n",
      "Iteration  4 : recall score =  0.945945945946\n",
      "Iteration  5 : recall score =  0.909090909091\n",
      "\n",
      "Mean recall score  0.914912641497\n",
      "\n",
      "   C_parameter Mean recall score\n",
      "0         0.01          0.969646\n",
      "1         0.10          0.899914\n",
      "2         1.00          0.908493\n",
      "3        10.00           0.91221\n",
      "4       100.00          0.914913\n",
      "*********************************************************************************\n",
      "Best model to choose from cross validation is with C111 parameter =  0.01\n",
      "*********************************************************************************\n"
     ]
    }
   ],
   "source": [
    "best_c = printing_Kfold_scores(X_train_undersample,y_train_undersample)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "#### confusion matrix【构建混淆矩阵《作为工具来用》】       "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_confusion_matrix(cm, classes,\n",
    "                          title='Confusion matrix',\n",
    "                          cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    This function prints and plots the confusion matrix.\n",
    "    \"\"\"\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=0)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, cm[i, j],\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall metric in the testing dataset:  0.938775510204\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApEAAAJGCAYAAAADEN5cAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XuYZFV5L+DfN4ygCAqIIgIq4ggi\ngiIiwYhGEw9EI+ScGDFoUIlEo8ZETQSvGDWS5MRbNHrgoBLxgGg04AVRiTeIoICoIHcUGOU2oARB\njcA6f1QNaYau7q5mV1d31/s+Tz1U7b1rr68GnvHzt9deu1prAQCAYawYdwEAACw9mkgAAIamiQQA\nYGiaSAAAhqaJBABgaJpIAACGpokE5qyq7lVVn6mqG6vqE3fjPAdU1Re7rG1cqupJVXXhuOsAWGhl\nnUhYfqrqj5K8KskOSW5Kck6St7fWTr2b531+klck2bO1duvdLnSRq6qWZFVr7ZJx1wKw2EgiYZmp\nqlcleXeSv02yRZIHJ/nnJPt2cPqHJLloEhrIuaiqleOuAWBcNJGwjFTVfZP8TZKXtdY+1Vq7ubX2\n69baZ1prf9U/ZoOqendV/aT/endVbdDf95SqWl1Vr66qa6vqqqp6YX/fW5K8KclzqurnVXVQVR1W\nVcdMGf+hVdXWNldV9YKquqyqbqqqH1bVAVO2nzrle3tW1bf7l8m/XVV7Ttn31ap6a1Wd1j/PF6tq\n8wG/f239fz2l/v2q6ner6qKquqGqXjfl+N2r6ptV9bP+se+rqvX7+77eP+y7/d/7nCnnf21VXZ3k\nw2u39b+zXX+MXfufH1RVa6rqKXfrXyzAIqSJhOXlN5LcM8mnZzjm9Un2SPKYJLsk2T3JG6bsf2CS\n+ybZKslBSd5fVZu21t6cXrr58dbaRq21o2YqpKruneS9SfZprW2cZM/0Lquve9xmST7XP/Z+Sd6Z\n5HNVdb8ph/1RkhcmeUCS9ZO8ZoahH5jen8FW6TW9RyZ5XpLHJXlSkjdV1cP6x96W5C+TbJ7en93T\nkvxZkrTW9uofs0v/9358yvk3Sy+VPXjqwK21S5O8NsnHqmrDJB9O8pHW2ldnqBdgSdJEwvJyvyRr\nZrncfECSv2mtXdtauy7JW5I8f8r+X/f3/7q19vkkP0+y/TzruT3JTlV1r9baVa2186Y55hlJLm6t\n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\npwBgkdJEslisTrLNlM9bJ/nJmGoBAGahiWSx+HaSVVW1bVWtn2T/JCeOuSYAYABNJItCa+3WJC9P\ncnKS85Mc31o7b7xVAeNUVccm+WaS7atqdVUdNO6agP/msYcAAAxNEgkAwNA0kQAADE0TCQDA0DSR\nAAAMTRMJAMDQNJFAkqSqbquqc6rq3Kr6RFVteDfO9ZSq+mz//bOq6pAZjt2kqv5sHmMcVlWvmev2\ndY75SFX9wRBjPbSqzh22RoDlTBMJrPWL1tpjWms7JfmvJC+ZurN6hv47o7V2Ymvt8BkO2STJ0E0k\nAOOliQSm840kD+8ncOdX1T8nOTvJNlX19Kr6ZlWd3U8sN0qSqtq7qi6oqlOT/M+1J6qqF1TV+/rv\nt6iqT1fVd/uvPZMcnmS7fgr6D/3j/qqqvl1V36uqt0w51+ur6sKq+nKS7Wf7EVX14v55vltV/7pO\nuvrbVfWNqrqoqp7ZP369qvqHKWP/6d39gwRYrjSRwJ1U1cok+yT5fn/T9kn+pbX22CQ3J3lDkt9u\nre2a5Mwkr6qqeyY5MsnvJXlSkgcOOP17k3yttbZLkl2TnJfkkCSX9lPQv6qqpydZlWT3JI9J8riq\n2quqHpfe4zAfm16T+vg5/JxPtdYe3x/v/CRTn3jy0CRPTvKMJB/s/4aDktzYWnt8//wvrqpt5zAO\nwMRZOe4CgEXjXlV1Tv/9N5IcleRBSS5vrZ3e375Hkh2TnFZVSbJ+eo+l2yHJD1trFydJVR2T5OBp\nxnhqkj9OktbabUlurKpN1znm6f3Xd/qfN0qvqdw4yadba7f0x5jLs9V3qqq3pXfJfKP0Hqu51vGt\ntduTXFxVl/V/w9OT7DxlvuR9+2NfNIexACaKJhJY6xettcdM3dBvFG+euinJl1prz13nuMck6eoZ\nqpXkHa21/7POGH8xjzE+kmS/1tp3q+oFSZ4yZd+652r9sV/RWpvabKaqHjrkuADLnsvZwDBOT/LE\nqnp4klTVhlX1iCQXJNm2qrbrH/fcAd8/JclL+99dr6ruk+Sm9FLGtU5O8qIpcy23qqoHJPl6kt+v\nqntV1cbpXTqfzcZJrqqqeyQ5YJ19z66qFf2aH5bkwv7YL+0fn6p6RFXdew7jAEwcSSQwZ6216/qJ\n3rFVtUF/8xtaaxdV1cFJPldVa5KcmmSnaU7xyiRHVNVBSW5L8tLW2jer6rT+Ejon9edFPjLJN/tJ\n6M+TPK+1dnZVfTzJOUkuT++S+2zemOSM/vHfz52b1QuTfC3JFkle0lr7ZVX93/TmSp5dvcGvS7Lf\n3P50ACZLtdbVFSgAACaFy9kAAAxNEwkAwNA0kQAADE0TCQDA0DSRAAAMTRMJAMDQNJEAAAzt/wOK\nMU5AgiiHiQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf7cb630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 经典混合矩阵\n",
    "import itertools\n",
    "lr = LogisticRegression(C = best_c, penalty = 'l1')\n",
    "lr.fit(X_train_undersample,y_train_undersample.values.ravel())\n",
    "y_pred_undersample = lr.predict(X_test_undersample.values)\n",
    "\n",
    "# Compute confusion matrix\n",
    "cnf_matrix = confusion_matrix(y_test_undersample,y_pred_undersample)\n",
    "np.set_printoptions(precision=2)\n",
    "\n",
    "print(\"Recall metric in the testing dataset: \", cnf_matrix[1,1]/(cnf_matrix[1,0]+cnf_matrix[1,1]))\n",
    "\n",
    "# Plot non-normalized confusion matrix\n",
    "class_names = [0,1]\n",
    "plt.figure(figsize=(12,8))\n",
    "plot_confusion_matrix(cnf_matrix\n",
    "                      , classes=class_names\n",
    "                      , title='Confusion matrix')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img  src=\"混淆矩阵的意义.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 在test测试集上检测模型的结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "y_pred:[1 0 0 ..., 0 0 1]\n",
      "Recall metric in the testing dataset:  0.931972789116\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAp0AAAJGCAYAAAAZLD7SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xu4Z1VdP/D3Z7goiNxUCLl4HVEk\nRYaANA0lcVAS6hGFVNCoSVOrX3bBtMjbLyvzQt7SREELRBNBRGgizfSHCCheEHVGTBkhLg4SihfA\n9fvj7KHDsL/nHGDvOWcOr5fPfs53r7323uv71Wdcz3uvtXa11gIAAGNaMt8NAABg8dPpBABgdDqd\nAACMTqcTAIDR6XQCADA6nU4AAEan0wnMWVVtUVUfrarrq+qDd+E6z66qfx2ybfOlqh5fVV+f73YA\nLHRlnU5YfKrqN5L8YZKHJ7khycVJXtta+/RdvO5zk7wkyWNbazff5YYucFXVkixtra2e77YAbOwk\nnbDIVNUfJnlTkv+bZMckuyV5W5JDB7j8A5J84+7Q4ZyLqtp0vtsAsLHQ6YRFpKq2SfKqJC9qrX24\ntfbD1tpNrbWPttb+uKtzj6p6U1Vd0W1vqqp7dMcOqKo1VfXSqrq6qq6squd3x16Z5C+SPKuqflBV\nx1TVX1bV+6fd/4FV1dZ1xqrqeVV1WVXdUFXfqqpnTyv/9LTzHltVF3SP7S+oqsdOO/bJqnp1VX2m\nu86/VtV9J3z/de3/k2ntP6yqnlpV36iqtVX1Z9Pq71tV51XV97u6b6mqzbtjn+qqfbH7vs+adv0/\nrar/TvKedWXdOQ/p7rF3t3//qrq2qg64S//FAiwCOp2wuPxiknsmOW2GOi9Psn+SvZI8Osm+SV4x\n7fjPJdkmyc5Jjkny1qrarrV2XKbS0w+01rZqrb17poZU1b2SHJ/k4NbavZM8NlOP+devt32Sj3V1\n75PkDUk+VlX3mVbtN5I8P8kOSTZP8kcz3PrnMvUb7JypTvK7kjwnybIkj0/yF1X14K7uLUn+T5L7\nZuq3OzDJ7yZJa+0JXZ1Hd9/3A9Ouv32mUt8V02/cWvtmkj9N8k9VtWWS9yR5b2vtkzO0F+BuQacT\nFpf7JLl2lsffz07yqtba1a21a5K8Mslzpx2/qTt+U2vtrCQ/SLL7nWzPz5LsWVVbtNaubK1d0lPn\naUlWtdbe11q7ubV2cpKvJfnVaXXe01r7RmvtR0lOzVSHeZKbMjV+9aYkp2SqQ/nm1toN3f0vSfKo\nJGmtXdRa+2x33/9K8g9JfnkO3+m41tpPuvbcRmvtXUlWJTk/yU6Z6uQD3O3pdMLi8r0k951lrOH9\nk3x72v63u7Jbr7Fep/XGJFvd0Ya01n6Y5FlJXpDkyqr6WFU9fA7tWdemnaft//cdaM/3Wmu3dJ/X\ndQqvmnb8R+vOr6qHVdWZVfXfVfU/mUpyex/dT3NNa+3Hs9R5V5I9k/x9a+0ns9QFuFvQ6YTF5bwk\nP05y2Ax1rsjUo+F1duvK7owfJtly2v7PTT/YWjuntfbkTCV+X8tUZ2y29qxr03fvZJvuiLdnql1L\nW2tbJ/mzJDXLOTMu+VFVW2VqIte7k/xlN3wA4G5PpxMWkdba9Zkax/jWbgLNllW1WVUdXFV/01U7\nOckrqup+3YScv0jy/knXnMXFSZ5QVbt1k5hetu5AVe1YVU/vxnb+JFOP6W/pucZZSR5WVb9RVZtW\n1bOS7JHkzDvZpjvi3kn+J8kPuhT2hesdvyrJg2931szenOSi1tpvZWqs6jvucisBFgGdTlhkWmtv\nyNQana9Ick2Sy5O8OMlHuiqvSXJhki8l+XKSz3dld+ZeK5N8oLvWRbltR3FJkpdmKslcm6mxkr/b\nc43vJTmkq/u9JH+S5JDW2rV3pk130B9lapLSDZlKYT+w3vG/THJiN7v9mbNdrKoOTbI8U0MKkqn/\nHvZeN2sf4O7M4vAAAIxO0gkAwOh0OgEAGJ1OJwAAo9PpBABgdDMtIL3B1aZbtNr83vPdDGCB2PNh\nu853E4AFYs3l387a71072zq6826TrR/Q2s23e1nZ4NqPrjmntbZ89BsNaGF1Oje/d+6x+6yrkgB3\nE2esfP18NwFYIJ7+K4+b7ybMSbv5RxukL/Pji98629vTFhyP1wEAGN2CSjoBADZulZRMr49fBQCA\n0Uk6AQCGUklqwc93mheSTgAARifpBAAYkjGdvfwqAACMTtIJADAkYzp7SToBABidpBMAYDDW6ZzE\nrwIAwOgknQAAQzKms5ekEwCA0Uk6AQCGUjGmcwK/CgAAo5N0AgAMpozpnEDSCQDA6CSdAABDMqaz\nl18FAIDRSToBAIZkTGcvSScAAKOTdAIADMa71yfxqwAAMDpJJwDAUCrGdE4g6QQAYHSSTgCAIRnT\n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\nL51OYJ0ftdb2aq3tmeSnSV4w/WBNucP/ZrTWzmitvW6GKtsmucOdTgA2LjqdQJ//TPLQLuG7tKre\nluTzSXatqoOq6ryq+nyXiG6VJFW1vKq+VlWfTvLr6y5UVc+rqrd0n3esqtOq6ovd9tgkr0vykC5l\n/duu3h9X1QVV9aWqeuW0a728qr5eVf+WZPfZvkRV/XZ3nS9W1b+sl97+SlX9Z1V9o6oO6epvUlV/\nO+3ev3NXf0gApuh0ArdRVZsmOTjJl7ui3ZOc1Fp7TJIfJnlFkl9pre2d5MIkf1hV90zyriS/muTx\nSX5uwuWPT/IfrbVHJ9k7ySVJjk3yzS5l/eOqOijJ0iT7JtkrybKqekJVLcvU61Efk6lO7S/M4et8\nuLX2C939Lk0y/Y02D0zyy0meluQd3Xc4Jsn1rbVf6K7/21X1oDncB4BZbDrfDQAWjC2q6uLu838m\neXeS+yf5dmvts135/kn2SPKZqkqSzTP1msKHJ/lWa21VklTV+5Os6LnHk5IclSSttVuSXF9V261X\n56Bu+0K3v1WmOqH3TnJaa+3G7h5nzOE77VlVr8nUI/ytMvWa1XVOba39LMmqqrqs+w4HJXnUtPGe\n23T3/sYc7gXADHQ6gXV+1Frba3pB17H84fSiJCtba0euV2+vJEO9U7eS/FVr7R/Wu8cf3Il7vDfJ\nYa21L1bV85IcMO3Y+tdq3b1f0lqb3jlNVT3wDt4XgPV4vA7cEZ9N8riqemiSVNWWVfWwJF9L8qCq\nekhX78gJ55+b5IXduZtU1dZJbshUirnOOUl+c9pY0Z2raockn0rya1W1RVXdO1OP8mdz7yRXVtVm\nSZ693rHDq2pJ1+YHJ/l6d+8XdvVTVQ+rqnvN4T4AzELSCcxZa+2aLjE8uaru0RW/orX2japakeRj\nVXVtkk8n2bPnEr+f5J1VdUySW5K8sLV2XlV9pluS6OPduM5HJDmvS1p/kOQ5rbXPV9UHklyc5NuZ\nGgIwmz9Pcn5X/8u5bef260n+I8mOSV7QWvtxVf1jpsZ6fr6mbn5NksPm9usAMJNqbagnYgAA0M/j\ndQAARqfTCQDA6HQ6AQAYnU4nAACj0+kEAGB0Op0AAIxOpxMAgNH9f57ksai2Ux3vAAAAAElFTkSu\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf7cb7b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = best_c, penalty = 'l1')\n",
    "lr.fit(X_train_undersample,y_train_undersample.values.ravel())\n",
    "y_pred = lr.predict(X_test.values)\n",
    "# Compute confusion matrix\n",
    "cnf_matrix = confusion_matrix(y_test,y_pred)\n",
    "np.set_printoptions(precision=2)\n",
    "\n",
    "print(\"Recall metric in the testing dataset: \", cnf_matrix[1,1]/(cnf_matrix[1,0]+cnf_matrix[1,1]))\n",
    "\n",
    "# Plot non-normalized confusion matrix\n",
    "class_names = [0,1]\n",
    "plt.figure(figsize=(12,8))\n",
    "plot_confusion_matrix(cnf_matrix\n",
    "                      , classes=class_names\n",
    "                      , title='Confusion matrix')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"下采样导致数据误杀率很高.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 下面我们使用不交叉验证方式进行建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-------------------------------------------\n",
      "C parameter:  0.01\n",
      "-------------------------------------------\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\sorfware_install\\python_install\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration  1 : recall score =  0.492537313433\n",
      "Iteration  2 : recall score =  0.602739726027\n",
      "Iteration  3 : recall score =  0.683333333333\n",
      "Iteration  4 : recall score =  0.569230769231\n",
      "Iteration  5 : recall score =  0.45\n",
      "\n",
      "Mean recall score  0.559568228405\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  0.1\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.567164179104\n",
      "Iteration  2 : recall score =  0.616438356164\n",
      "Iteration  3 : recall score =  0.683333333333\n",
      "Iteration  4 : recall score =  0.584615384615\n",
      "Iteration  5 : recall score =  0.525\n",
      "\n",
      "Mean recall score  0.595310250644\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  1\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.55223880597\n",
      "Iteration  2 : recall score =  0.616438356164\n",
      "Iteration  3 : recall score =  0.716666666667\n",
      "Iteration  4 : recall score =  0.615384615385\n",
      "Iteration  5 : recall score =  0.5625\n",
      "\n",
      "Mean recall score  0.612645688837\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  10\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.55223880597\n",
      "Iteration  2 : recall score =  0.616438356164\n",
      "Iteration  3 : recall score =  0.733333333333\n",
      "Iteration  4 : recall score =  0.615384615385\n",
      "Iteration  5 : recall score =  0.575\n",
      "\n",
      "Mean recall score  0.61847902217\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  100\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.55223880597\n",
      "Iteration  2 : recall score =  0.616438356164\n",
      "Iteration  3 : recall score =  0.733333333333\n",
      "Iteration  4 : recall score =  0.615384615385\n",
      "Iteration  5 : recall score =  0.575\n",
      "\n",
      "Mean recall score  0.61847902217\n",
      "\n",
      "   C_parameter Mean recall score\n",
      "0         0.01          0.559568\n",
      "1         0.10           0.59531\n",
      "2         1.00          0.612646\n",
      "3        10.00          0.618479\n",
      "4       100.00          0.618479\n",
      "*********************************************************************************\n",
      "Best model to choose from cross validation is with C111 parameter =  10.0\n",
      "*********************************************************************************\n"
     ]
    }
   ],
   "source": [
    "best_c = printing_Kfold_scores(X_train,y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 如果没有交叉验证的样本分组训练出来模型效果非常的差"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall metric in the testing dataset:  0.619047619048\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nI+KSiLghIs6MiPGl7vplf0k5vkPXdY4t5ddFxAFd5TNK2ZKIOGag9tjplCRJatOYqL8NICImAv8E\nTMnM3YCxwCzgU8DnMnMycDdwZDnlSODuzHwG8LlSj4jYpZy3KzAD+FJEjI2IscBJwExgF+DQUrf3\nz7KaP6MkSZLWDuOADSJiHLAhcDvwYuBb5fhpwMHl80Fln3J8v4iIUn5GZj6YmTcBS4CpZVuSmTdm\n5kPAGaVuv42RJElSG4KhGtO5RUQs6to/OTNP7tvJzN9FxH8AtwAPAD8ELgP+kJkrS7WlwMTyeSJw\nazl3ZUTcAzyllF/cdZ/uc25dpXzv/hpsp1OSJGntszwzp/Q6GBET6CSPOwJ/AP6XzqPwVWXfKT2O\n9Spv6llnQ9mjfLwuSZI0+rwEuCkz78zMh4HvAPsAm5XH7QCTgNvK56XAdgDl+KbAiu7yVc7pVd6T\nnU5JkqQ2RdTfBnYLMC0iNixjM/cDfg38BHh1qXMEcE75PLfsU47/ODOzlM8qs9t3BCYDlwILgcll\nNvx4OpON5vbXIB+vS5IkjTKZeUlEfAu4HFgJ/BI4GTgPOCMiPlbKTimnnAJ8PSKW0Ek4Z5XrLI6I\ns+h0WFcCR2fmIwAR8XZgPp2Z8XMyc3F/bbLTKUmS1JqRszh8Zh4HHLdK8Y10Zp6vWvfPwCE9rnM8\ncHxD+Txg3mDbMzJ+FUmSJI1qJp2SJEltGtyYy3WOSackSZKqM+mUJElq0wgZ0znS+KtIkiSpOpNO\nSZKktgx+Hc11jkmnJEmSqjPplCRJapNjOhv5q0iSJKk6k05JkqQ2OaazkUmnJEmSqjPplCRJas3I\neff6SOOvIkmSpOpMOiVJktrkmM5GJp2SJEmqzqRTkiSpLYFjOnvwV5EkSVJ1Jp2SJEmtcfZ6L/4q\nkiRJqs6kU5IkqU3OXm9k0ilJkqTqTDolSZLa5JjORv4qkiRJqs6kU5IkqU2O6Wxk0ilJkqTqTDol\nSZLaEq7T2Yu/iiRJkqoz6ZQkSWqTYzobmXRKkiSpOpNOSZKkFoVJZyOTTkmSJFVn0ilJktSSwKSz\nF5NOSZIkVWfSKUmS1JYomx7HpFOSJEnVmXRKkiS1JhzT2YNJpyRJkqoz6ZQkSWqRSWczk05JkiRV\nZ9IpSZLUIpPOZiadkiRJqs6kU5IkqUUmnc1MOiVJklSdSackSVJbfCNRTyadkiRJqs6kU5IkqSXh\nG4l6MumUJElSdSadkiRJLTLpbGbSKUmSpOpMOiVJklpk0tnMpFOSJEnV2emUJElSdXY6JUmSWhQR\n1bdBtGGniLiia/tjRLwzIjaPiAURcUP5O6HUj4g4MSKWRMSVEbFn17WOKPVviIgjusr3ioiryjkn\nxgANs9MpSZI0ymTmdZm5R2buAewF3A+cDRwDnJ+Zk4Hzyz7ATGBy2WYDXwaIiM2B44C9ganAcX0d\n1VJndtd5M/prk51OSZKktsQQbatnP+A3mXkzcBBwWik/DTi4fD4IOD07LgY2i4htgAOABZm5IjPv\nBhYAM8qxTTLzosxM4PSuazVy9rokSdLaZ4uIWNS1f3Jmntyj7izgm+Xz1pl5O0Bm3h4RW5XyicCt\nXecsLWX9lS9tKO/JTqckSVKLhmjJpOWZOWUQbRkPvAI4dqCqDWW5BuU9+XhdkiRp9JoJXJ6Zd5T9\nO8qjccrfZaV8KbBd13mTgNsGKJ/UUN6TnU5JkqSWBPVnrq9mknoof320DjAX6JuBfgRwTlf54WUW\n+zTgnvIYfj4wPSImlAlE04H55di9ETGtzFo/vOtajXy8LkmSNApFxIbA/sBbu4o/CZwVEUcCtwCH\nlPJ5wEuBJXRmur8JIDNXRMRHgYWl3kcyc0X5fBRwKrAB8P2y9WSnU5IkqUUj5TWYmXk/8JRVyu6i\nM5t91boJHN3jOnOAOQ3li4DdBtseH69LkiSpOpNOSZKkNo2MoHPEMemUJElSdSadkiRJbYmRM6Zz\npDHplCRJUnUmnZIkSS0y6Wxm0ilJkqTqTDolSZJaZNLZzKRTkiRJ1Zl0SpIktaTv3et6PJNOSZIk\nVWfSKUmS1CaDzkYmnZIkSarOpFOSJKktvpGoJ5NOSZIkVWfSKUmS1CKTzmYmnZIkSarOpFOSJKlF\nJp3NTDolSZJUnUmnJElSmww6G5l0SpIkqTqTTkmSpBY5prOZSackSZKqM+mUJElqSUSYdPZgp1PV\nvOOwF/HGV+5DZrJ4yW3MPu4bfOH9s3jeXs/gnj/9GYDZH/w6V17/O2bNnMK73rg/APc98CD/9PEz\nuer63/W8zoMPrXz0Pp997yG84RXT2HLfdw/9l5TUmre+5c18f965bLnVVlx2xdUAHPvef2Xeed9j\n/Hrj2fHpT+fkr36NzTbbbJhbKmlN+HhdVWy75aa87dAXsO9hn2bKIR9n7JgxHHLAXgC874TvMm3W\n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\nIiYBLwO+WvYDeDHwrVLlNODg8vmgsk85vl+pfxBwRmY+mJk3AUuAqWVbkpk3ZuZDwBmlbk/9juks\nN9sd+F0p+ktmPm5SkSRJkobUFhGxqGv/5Mw8eZU6JwD/Bmxc9p8C/CEzV5b9pcDE8nkiZc5OZq6M\niHtK/YnAxV3X7D7n1lXK9+6vwf12OjMzI+LszNyrv3qSJEnqWJOxi2tgeWZO6XUwIg4ElmXmZRHx\nwr7ihqo5wLFe5U1fs99gcjCz1y+NiD0z8/JB1JUkSdLw2xd4RUS8lM7qQ5vQST43i4hxJe2cBNxW\n6i8FtgOWRsQ4YFNgRVd5n+5zepU36tkZLzcE+Hs6Hc/rIuLyMgPKDqgkSVKDkTB7PTOPzcxJmbkD\nnYlAP87Mw4CfAK8u1Y4Azimf55Z9yvEflyGVc4FZZXb7jsBk4FJgITC5zIYfX+4xt7829Zd0Xgrs\nyV8HmEqSJGnt9l7gjIj4GPBL4JRSfgrw9YhYQifhnAWQmYsj4izg18BK4OjMfAQgIt4OzAfGAnMy\nc3F/N+6v0xnlZr9Z028lSZK0LonVmF0+VDLzp8BPy+cb6cw8X7XOn4FDepx/PHB8Q/k8YN5g29Ff\np3PLiHhXr4OZ+dnB3kSSJEnrtv46nWOBjWietSRJkqQGIyzoHDH663TenpkfGbKWSJIkadQacEyn\nJEmSBm+MPahG/a1fut+QtUKSJEmjWs+kMzNXDGVDJEmS1nZ9717X4w3Rm5okSZK0LhvMazAlSZI0\nSAadzUw6JUmSVJ1JpyRJUlvC2eu9mHRKkiSpOpNOSZKkFoVLnTcy6ZQkSVJ1Jp2SJEkt6azTOdyt\nGJlMOiVJklSdSackSVKLTDqbmXRKkiSpOpNOSZKkFoWvJGpk0ilJkqTqTDolSZJa4uz13kw6JUmS\nVJ1JpyRJUlsCHNLZzKRTkiRJ1Zl0SpIktWiMUWcjk05JkiRVZ9IpSZLUEmev92bSKUmSpOpMOiVJ\nklrkkM5mJp2SJEmqzk6nJEmSqvPxuiRJUmuCMfh8vYlJpyRJkqoz6ZQkSWpJ4ESiXkw6JUmSVJ1J\npyRJUlvCxeF7MemUJElSdSadkiRJLRrjoM5GJp2SJEmqzqRTkiSpJc5e782kU5IkSdWZdEqSJLXI\nMZ3NTDolSZJUnUmnJElSiww6m5l0SpIkqTqTTkmSpJYEJnq9+LtIkiSpOpNOSZKktgSEgzobmXRK\nkiSpOpNOSZKkFplzNjPplCRJUnUmnZIkSS0JfCNRLyadkiRJqs5OpyRJUotiCLYB2xDxpIi4NCJ+\nFRGLI+LDpXzHiLgkIm6IiDMjYnwpX7/sLynHd+i61rGl/LqIOKCrfEYpWxIRxwzUJjudkiRJo8+D\nwIszc3dgD2BGREwDPgV8LjNg/rwtAAASQElEQVQnA3cDR5b6RwJ3Z+YzgM+VekTELsAsYFdgBvCl\niBgbEWOBk4CZwC7AoaVuT3Y6JUmSWhRRfxtIdvyp7K5XtgReDHyrlJ8GHFw+H1T2Kcf3i86CowcB\nZ2Tmg5l5E7AEmFq2JZl5Y2Y+BJxR6vZkp1OSJGnts0VELOraZq9aoSSSVwDLgAXAb4A/ZObKUmUp\nMLF8ngjcClCO3wM8pbt8lXN6lffk7HVJkqTWxFC9kWh5Zk7pr0JmPgLsERGbAWcDOzdVK3+bGp39\nlDcFl9lQ9iiTTkmSpFEsM/8A/BSYBmwWEX2h4yTgtvJ5KbAdQDm+KbCiu3yVc3qV92SnU5IkqSVB\np3NVexuwHRFbloSTiNgAeAlwDfAT4NWl2hHAOeXz3LJPOf7jzMxSPqvMbt8RmAxcCiwEJpfZ8OPp\nTDaa21+bfLwuSZI0+mwDnFZmmY8BzsrMcyPi18AZEfEx4JfAKaX+KcDXI2IJnYRzFkBmLo6Is4Bf\nAyuBo8tjeyLi7cB8YCwwJzMX99cgO52SJEktGqIxnf3KzCuB5zSU30hn5vmq5X8GDulxreOB4xvK\n5wHzBtsmH69LkiSpOpNOSZKkFg1/zjkymXRKkiSpOpNOSZKktsTIGNM5Epl0SpIkqTqTTkmSpJb0\nrdOpx/N3kSRJUnUmnZIkSS1yTGczk05JkiRVZ9IpSZLUInPOZiadkiRJqs6kU5IkqUUO6Wxm0ilJ\nkqTqTDolSZJa0lmn06iziUmnJEmSqjPplCRJapFjOpuZdEqSJKk6k05JkqTWBOGYzkYmnZIkSarO\npFOSJKlFjulsZtIpSZKk6kw6JUmSWuI6nb2ZdEqSJKk6O52SJEmqzsfrkiRJbQknEvVi0ilJkqTq\nTDolSZJaZNLZzKRTkiRJ1Zl0SpIktcjXYDYz6ZQkSVJ1Jp2SJEktCWCMQWcjk05JkiRVZ9IpSZLU\nIsd0NjPplCRJUnUmnZIkSS1ync5mJp2SJEmqzqRTkiSpRY7pbGbSKUmSpOpMOiVJklriOp29mXRK\nkiSpOjudGlY7PWMHpuzxt+y91x7su/eUR8u/9MUv8Oxdd2LP3Xflfcf82zC2UNJQ+uKJn2evPXZj\nz9135QufPwGAb3/rf9lz913ZcPwYLlu0aJhbKA0khuQ/ayMfr2vY/eBHP2GLLbZ4dP9nP/0J537v\nHBZefiXrr78+y5YtG8bWSRoqi6++mq/N+Qq/+H+XMn78eF7xshnMfOnL2HXX3TjjrO/w9re9dbib\nKOkJMOnUiHPyf32Z9/zbMay//voAbLXVVsPcIklD4dprr2Hq1GlsuOGGjBs3juc9/wWcc87ZPGvn\nnXnmTjsNd/OkwYnOOp21t7WRnU4Nq4jg5TOns8/UvTjlKycDsOT667nwgl/wvH32Zv8Xv4BFCxcO\ncyslDYVdd92NCy74OXfddRf3338/P/j+PJbeeutwN0tSS6o9Xo+IOcCBwLLM3K3WfbR2+/HPLmTb\nbbdl2bJlHDhjf3Z61rNY+chK7r77bn5+4cUsWriQ17/uNVxz/Y3E2vp/7SQNyrN23pl3v+e9HDhj\nf5680UY8+9m7M26co8C09vF/rZrVTDpPBWZUvL5GgW233RboPEJ/xcGvZOHCS5k4cRIHv/JVRATP\nnTqVMWPGsHz58mFuqaSh8MY3H8lFCy/nRz/5ORM235xnPGPycDdJUkuqdToz8+fAilrX19rvvvvu\n49577330848W/JBdd92Nl7/iYH76kx8DcMP11/PQQw89ZqKRpNGrb+LgLbfcwjnf/Q6vmXXoMLdI\nWj2ddTqj+rY2GvbnFhExG5gNsN322w9zazSUlt1xB6999SsBWPnISl4763VMP2AGDz30EG99y5vZ\na4/dGL/eeL465zQfrUvriENf839YseIu1hu3HieceBITJkzgnO+ezbve+Q6W33knrzroZTx79z34\n3rz5w91USaspMrPexSN2AM4d7JjOvfaakhde4hpskiTpsfbdewqXXbZoxCcQO//tc/JrZ/+k+n3+\nbvKEyzJzysA1Rw5nr0uSJKm6YX+8LkmSNKqM+Dx2eFRLOiPim8BFwE4RsTQijqx1L0mSJI1sNWev\nH5qZ22Tmepk5KTNPqXUvSZKkkWIkvHs9IraLiJ9ExDURsTgi/rmUbx4RCyLihvJ3QimPiDgxIpZE\nxJURsWfXtY4o9W+IiCO6yveKiKvKOSfGALN+HdMpSZI0+qwE3p2ZOwPTgKMjYhfgGOD8zJwMnF/2\nAWYCk8s2G/gydDqpwHHA3sBU4Li+jmqpM7vrvH7XZ7fTKUmS1KKR8O71zLw9My8vn+8FrgEmAgcB\np5VqpwEHl88HAadnx8XAZhGxDXAAsCAzV2Tm3cACYEY5tklmXpSdpZBO77pWIzudkiRJo1hZwvI5\nwCXA1pl5O3Q6psBWpdpE4Nau05aWsv7KlzaU9+TsdUmSpBYN0eT1LSKie3HzkzPz5Me1JWIj4NvA\nOzPzj/0Mu2w6kGtQ3pOdTkmSpLXP8oEWh4+I9eh0OP87M79Tiu+IiG0y8/byiHxZKV8KbNd1+iTg\ntlL+wlXKf1rKJzXU78nH65IkSW2KIdgGakIn0jwFuCYzP9t1aC7QNwP9COCcrvLDyyz2acA95fH7\nfGB6REwoE4imA/PLsXsjYlq51+Fd12pk0ilJkjT67Au8AbgqIq4oZe8DPgmcVdZPvwU4pBybB7wU\nWALcD7wJIDNXRMRHgYWl3kcyc0X5fBRwKrAB8P2y9WSnU5IkqSWdIHL4X0mUmRfQOxPdr6F+Akf3\nuNYcYE5D+SJgt8G2ycfrkiRJqs6kU5IkqS2DXEdzXWTSKUmSpOpMOiVJklpk0NnMpFOSJEnVmXRK\nkiS1yaizkUmnJEmSqjPplCRJak2MiHU6RyKTTkmSJFVn0ilJktQi1+lsZtIpSZKk6kw6JUmSWhI4\neb0Xk05JkiRVZ9IpSZLUJqPORiadkiRJqs6kU5IkqUWu09nMpFOSJEnVmXRKkiS1yHU6m5l0SpIk\nqTo7nZIkSarOx+uSJEkt8ul6M5NOSZIkVWfSKUmS1Bbfg9mTSackSZKqM+mUJElqkYvDNzPplCRJ\nUnUmnZIkSS0JXBy+F5NOSZIkVWfSKUmS1CKDzmYmnZIkSarOpFOSJKlNRp2NTDolSZJUnUmnJElS\ni1yns5lJpyRJkqoz6ZQkSWqR63Q2M+mUJElSdSadkiRJLTLobGbSKUmSpOpMOiVJktpk1NnIpFOS\nJEnVmXRKkiS1JHCdzl5MOiVJklSdSackSVJbwnU6ezHplCRJUnUmnZIkSS0y6Gxm0ilJkqTqTDol\nSZLaZNTZyKRTkiRJ1Zl0SpIktSZcp7MHk05JkiRVZ9IpSZLUItfpbGbSKUmSpOpMOiVJkloSOHm9\nF5NOSZKkUSYi5kTEsoi4uqts84hYEBE3lL8TSnlExIkRsSQiroyIPbvOOaLUvyEijugq3ysirirn\nnBgx8KACO52SJEltiiHYBnYqMGOVsmOA8zNzMnB+2QeYCUwu22zgy9DppALHAXsDU4Hj+jqqpc7s\nrvNWvdfj2OmUJEkaZTLz58CKVYoPAk4rn08DDu4qPz07LgY2i4htgAOABZm5IjPvBhYAM8qxTTLz\nosxM4PSua/XkmE5JkqQWDdE6nVtExKKu/ZMz8+QBztk6M28HyMzbI2KrUj4RuLWr3tJS1l/50oby\nftnplCRJWvssz8wpLV2rqZeca1DeLx+vS5IktSii/raG7iiPxil/l5XypcB2XfUmAbcNUD6pobxf\ndjolSZLWDXOBvhnoRwDndJUfXmaxTwPuKY/h5wPTI2JCmUA0HZhfjt0bEdPKrPXDu67Vk4/XJUmS\nWjQS1umMiG8CL6Qz9nMpnVnonwTOiogjgVuAQ0r1ecBLgSXA/cCbADJzRUR8FFhY6n0kM/smJx1F\nZ4b8BsD3y9YvO52SJEmjTGYe2uPQfg11Ezi6x3XmAHMayhcBu61Om+x0SpIkteWJjbkc1RzTKUmS\npOpMOiVJklpl1NnEpFOSJEnVmXRKkiS1JHBMZy8mnZIkSarOpFOSJKlFBp3NTDolSZJUnUmnJElS\nixzT2cykU5IkSdWZdEqSJLUoHNXZyKRTkiRJ1dnplCRJUnU+XpckSWqTT9cbmXRKkiSpOpNOSZKk\nFhl0NjPplCRJUnUmnZIkSS2JcHH4Xkw6JUmSVJ1JpyRJUotcHL6ZSackSZKqM+mUJElqk0FnI5NO\nSZIkVWfSKUmS1CKDzmYmnZIkSarOpFOSJKlFrtPZzKRTkiRJ1Zl0SpIktSZcp7MHk05JkiRVZ9Ip\nSZLUksAxnb2YdEqSJKk6O52SJEmqzk6nJEmSqnNMpyRJUosc09nMpFOSJEnVmXRKkiS1yHU6m5l0\nSpIkqTqTTkmSpLaEYzp7MemUJElSdSadkiRJLYmy6fFMOiVJklSdSackSVKbjDobmXRKkiSpOpNO\nSZKkFrlOZzOTTkmSJFVn0ilJktQi1+lsZtIpSZKk6kw6JUmSWmTQ2cykU5IkSdWZdEqSJLXJqLOR\nSackSZKqM+mUJElqket0NjPplCRJUnUmnZIkSS0JXKezF5NOSZIkVReZOdxteFRE3AncPNzt0LDb\nAlg+3I2QNGL47wQB/E1mbjncjRhIRPyAzn9na1uemTOG4D6tGVGdTgkgIhZl5pThboekkcF/J0ij\ng4/XJUmSVJ2dTkmSJFVnp1Mj0cnD3QBJI4r/TpBGAcd0SpIkqTqTTkmSJFVnp1OSJEnV2enUiBER\nMyLiuohYEhHHDHd7JA2viJgTEcsi4urhboukJ85Op0aEiBgLnATMBHYBDo2IXYa3VZKG2anAWrX4\ntaTe7HRqpJgKLMnMGzPzIeAM4KBhbpOkYZSZPwdWDHc7JLXDTqdGionArV37S0uZJEkaBex0aqSI\nhjLX85IkaZSw06mRYimwXdf+JOC2YWqLJElqmZ1OjRQLgckRsWNEjAdmAXOHuU2SJKkldjo1ImTm\nSuDtwHzgGuCszFw8vK2SNJwi4pvARcBOEbE0Io4c7jZJWnO+BlOSJEnVmXRKkiSpOjudkiRJqs5O\npyRJkqqz0ylJkqTq7HRKkiSpOjudkgCIiEci4oqIuDoi/jciNnwC13phRJxbPr8iIo7pp+5mEfG2\nNbjHhyLiPYMtX6XOqRHx6tW41w4RcfXqtlGS9Fd2OiX1eSAz98jM3YCHgH/sPhgdq/3vjMycm5mf\n7KfKZsBqdzolSWsXO52SmvwCeEZJ+K6JiC8BlwPbRcT0iLgoIi4viehGABExIyKujYgLgFf1XSgi\n3hgRXyyft46IsyPiV2XbB/gk8PSSsn6m1PvXiFgYEVdGxIe7rvX+iLguIn4E7DTQl4iIfyjX+VVE\nfHuV9PYlEfGLiLg+Ig4s9cdGxGe67v3WJ/pDSpI67HRKeoyIGAfMBK4qRTsBp2fmc4D7gA8AL8nM\nPYFFwLsi4knAV4CXA88Dntrj8icCP8vM3YE9gcXAMcBvSsr6rxExHZgMTAX2APaKiOdHxF50Xo/6\nHDqd2ucO4ut8JzOfW+53DdD9RpsdgBcALwP+s3yHI4F7MvO55fr/EBE7DuI+kqQBjBvuBkgaMTaI\niCvK518ApwDbAjdn5sWlfBqwC3BhRACMp/OawmcBN2XmDQAR8Q1gdsM9XgwcDpCZjwD3RMSEVepM\nL9svy/5GdDqhGwNnZ+b95R5zB/GddouIj9F5hL8Rndes9jkrM/8C3BARN5bvMB14dtd4z03Lva8f\nxL0kSf2w0ympzwOZuUd3QelY3tddBCzIzENXqbcH0NY7dQP4RGb+1yr3eOca3ONU4ODM/FVEvBF4\nYdexVa+V5d7vyMzuzikRscNq3leStAofr0taHRcD+0bEMwAiYsOIeCZwLbBjRDy91Du0x/nnA0eV\nc8dGxCbAvXRSzD7zgTd3jRWdGBFbAT8HXhkRG0TExnQe5Q9kY+D2iFgPOGyVY4dExJjS5qcB15V7\nH1XqExHPjIgnD+I+kqQBmHRKGrTMvLMkht+MiPVL8Qcy8/qImA2cFxHLgQuA3Rou8c/AyRFxJPAI\ncFRmXhQRF5Ylib5fxnXuDFxUktY/Aa/PzMsj4kzgCuBmOkMABvLvwCWl/lU8tnN7HfAzYGvgHzPz\nzxHxVTpjPS+Pzs3vBA4e3K8jSepPZLb1REySJElq5uN1SZIkVWenU5IkSdXZ6ZQkSVJ1djolSZJU\nnZ1OSZIkVWenU5IkSdXZ6ZQkSVJ1/x+NIlXEd/CdPAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xfdca390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = best_c, penalty = 'l1')\n",
    "lr.fit(X_train,y_train.values.ravel())\n",
    "y_pred_undersample = lr.predict(X_test.values)\n",
    "\n",
    "# Compute confusion matrix\n",
    "cnf_matrix = confusion_matrix(y_test,y_pred_undersample)\n",
    "np.set_printoptions(precision=2)\n",
    "\n",
    "print(\"Recall metric in the testing dataset: \", cnf_matrix[1,1]/(cnf_matrix[1,0]+cnf_matrix[1,1]))\n",
    "\n",
    "# Plot non-normalized confusion matrix\n",
    "class_names = [0,1]\n",
    "plt.figure(figsize=(12,8))\n",
    "plot_confusion_matrix(cnf_matrix\n",
    "                      , classes=class_names\n",
    "                      , title='Confusion matrix')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 我们设置阀值变化概率与分类转化情况，查看他综合recall和 误杀率查看评定最终模型情况【默认阀值为0.5]\n",
    "### X+=0.5=>1,X<=0.5=>0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "treshods:0.1Recall metric in the testing dataset:  1.0\n",
      "treshods:0.2Recall metric in the testing dataset:  1.0\n",
      "treshods:0.3Recall metric in the testing dataset:  1.0\n",
      "treshods:0.4Recall metric in the testing dataset:  0.993197278912\n",
      "treshods:0.5Recall metric in the testing dataset:  0.938775510204\n",
      "treshods:0.6Recall metric in the testing dataset:  0.891156462585\n",
      "treshods:0.7Recall metric in the testing dataset:  0.843537414966\n",
      "treshods:0.8Recall metric in the testing dataset:  0.748299319728\n",
      "treshods:0.9Recall metric in the testing dataset:  0.591836734694\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n9fv5sksvqQ/9n4118f/c2eaWoYEBO3qpPZ09uheZgkZ232GzLFP6/51Ydpkl9aH3vVMXX3d7m1uG\nBsgUdAyZgsHs/v53ad6Tz+muf5Arw8S2kvaw/bBqNzbfSbWJj1G2ex6cN1ZS/4PTJpRWlLL9G9tP\n2v57WccYrvqrKDvnTQQwPC279JI6/Au76IQzrxpwm9132Ew33fEQp8OWopUTYpv6b7f0zn44IFda\nQ6ZgIMsus6QOP2hXnXDmFQNus/sO79JNdzxIppSGTOkUMqU1ZAoaWZgrvxgkV24nV8pR/FglIo6M\niLERMV7S3pL+JyL2lfQXSZ/ONttfUsunTJZ5ptRkSbuVuP9ha8yYsZoz57GF7+fOnaO11lqrgy1C\nVaw3drTGrbWKbj7vO7r30mM0ZvW36aZzv601Vl1x4TZ77fJeXcile+Vo4caBzfx/Wjs6+2FissiV\n3MgUDGS9saM1bsyqunnqEbr38uM0ZvVRuunc7/TKlC10IZdYlIdM6aTJIlNyI1PQyHpjV6vlyvlH\n6t4rjq/lyu8PXzxXdt2SXClLSWOVARwu6Vu2Z6t2ifhZre5o5OCbtCYirrc9vqz9D2cTttpKs2ff\nr4cfekhrjRmjC8+fqsnn/L7TzUIFzHrgcY3b5XsL39976THadr+f6unnX5YkrbT8Mtpui/V14Pd+\n16kmDnttngs8XNJU29+XdJuG0NkPB+RKa8gUDGTW7Mc17oOLnph07+XHadvPnaynn8syZYVltN2W\nG+jA757dqSZ2hTbmCplSh0xpDZmCRmbNnqdxOy96wuu9Vxyvbff9Sd9cOXpKp5o47JWZKRHxV0l/\nzV4/KGnrIvZbWlGqWdnNGQ+WpLXXWafDramGkSNH6uennq6P7b6rFixYoP0P+II22XTTTjcLHTDl\nB5/X9luur9GjVtDsK47TiZOu0pRLpg+4/R4feLeum36fXnntjTa2snvUbh5Y7vChrM6+W5ApfZEp\n6DHlhwdo+y03qGXKVSfoxDOv1JRLpg24/R4f2FzXTbuXTClR2blCpgwNmdIXmYJ6U350gLbfcsNa\nrlx9Yi1XLr5pwO3JlXK1Y6xSBg90R/xCdl6bfbg8IjZrZvstt5wQN06fUVp7kL6VJx7a6Sag4l6/\n5zy99fITpfTG73zXe+O3f/xL7u/9nw1XvjUiJpTQpK6TJ1fIFAxm5a2/1ukmoOJev/d8vfXKk6X9\n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\nnjEprHbuZXeo/wG/0MS7p+nEI/eSJH1j9230/CvztMV+Z2u3oy7UxaMP17rrrJ1xpVUopXt/oHVk\nStt9sWKFPvjgfd1x30P6+XkX6kfHj6B5DUnSudc8of7HX6OJD7yqEw/aPutyakf55yqL3H1w0WtV\nQ6oSMzrSnL43XtKwFLcP1Jwt+mykzXpvqCduHKOX/3meevfoqqnXn6meG66rtxa+r389OkNLP12u\nxe9/okeenqUdvsQtiJJmZbza4ExJp5vZLBVGJGr9RmHjRa6U5bjjT9DUJ5/Wv+9/SN022EBbbdU/\n65KQQ5PuflKH7ruTJGnkwUN123+ekyTNnrtIb7y1WFv365lleVWrgpmChsaLTGmTjTfprQMOOkRm\npp0H7aq6ujotWbwo67KQI5MenKlDd98i6zJqSgrnKvUzOt6QNFGFaXurZnRE67RpRkdqTSl3f0jS\nklZXBFCy6bPma7N9x2jAgedowIHn6K2F7+vL//UbvbP4I93xwPPaY+ct1a5dnTqtvZZ2HdhPL7/+\ndtYlV5XCPG2L/YrD3R9w94Oin2e7+xB338rdD3f3z1r7/WpGrpRv4cKFkqQ5c+botn/coiOOGp5x\nRciLLTfdaNXPB+69g1594x1J0ty339M+Q7aWJPXYYF19qV9Pvf4WJ5tJKydXSt52ik9KqgZkStsN\nO/BgTXnoAUnS7FkztXz5cm2wYfdsi0Lmtuy1/qqfD9ytn16d916G1dSWNM5VKjGjI/Pr96Mb/o6S\npL6bbppxNflwzNHD9fCDD2jRokXasl8f/eKX5+m448u+mT0CNuHC47TnoP7q3rWLZt3za/36irs0\n4R9Tm1z3ldff0X2PvqQnJ43RypWu8bc+qpdeW1Dhiqsfo9T5RqY0bfgR39GSJYu1Vvu19MdLL1O3\nRjerRW1oKlOGfWU79d+sh1audM1ZsESnXDBRkjT2yns07ryj9eSks2QmnX3JbVr8/icZf4PqlGKu\n1D8pab3off2Tkiaa2RUqPCnp8vR2H77iTOndp2/G1WTrpO+P1NQpD2vJ4kUavN2WOmP0z3XkiGN1\nxk9Gad/dd9FaHTroj3/5q4w5pjVlws++rj2330Td11tbs/5vpH59/ZMaNngz9e/dtZAr736kUy57\nSJLUs2snTbn4u1q3cwetXOk6+eAdtPOPJza4MTraroL/CzxT0kQzO1/SM2rDjA5Lc96vmfWTdKe7\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf7e65f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = 0.01, penalty = 'l1')\n",
    "lr.fit(X_train_undersample,y_train_undersample.values.ravel())\n",
    "#最后预测出来阀值\n",
    "y_pred_undersample_proba = lr.predict_proba(X_test_undersample.values)\n",
    "thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
    "plt.figure(figsize=(18,14))\n",
    "\n",
    "j = 1\n",
    "for i in thresholds:\n",
    "    # 将ndarray变成boolean数组\n",
    "    y_test_predictions_high_recall = y_pred_undersample_proba[:,1] > i\n",
    "    # print(y_test_predictions_high_recall)\n",
    "    # print(y_test_undersample)\n",
    "    plt.subplot(3,3,j)\n",
    "    j += 1\n",
    "    \n",
    "    # Compute confusion matrix\n",
    "    cnf_matrix = confusion_matrix(y_test_undersample,y_test_predictions_high_recall)\n",
    "    np.set_printoptions(precision=2)\n",
    "\n",
    "    print(\"treshods:{}Recall metric in the testing dataset: \".format(i), cnf_matrix[1,1]/(cnf_matrix[1,0]+cnf_matrix[1,1]))\n",
    "\n",
    "    # Plot non-normalized confusion matrix\n",
    "    class_names = [0,1]\n",
    "    plot_confusion_matrix(cnf_matrix\n",
    "                          , classes=class_names\n",
    "                          , title='Threshold >= %s'%i) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img  src=\"混合矩阵(误杀域，正确域，未检测域).png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 重点我们发现规律随着阀值增大我们发现误杀率在减小，为被检测率在增大，这说明什么，我们评估综合稳定性需要充精度，recall，误杀率，未被检测率四个维度进行验证我们的模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 过采样数据的生成【SMOTE样本生成】"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"过采样数据生成【SMOTE算法】.png\" />"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "#需要导入imblearn如果没有就需要自行安装\n",
    "from imblearn.over_sampling import SMOTE \n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import confusion_matrix\n",
    "from sklearn.model_selection import train_test_split #为什么不是交叉验证方式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [],
   "source": [
    "credit_cards=pd.read_csv('creditcard.csv')\n",
    "\n",
    "columns=credit_cards.columns\n",
    "# The labels are in the last column ('Class'). Simply remove it to obtain features columns\n",
    "features_columns=columns.delete(len(columns)-1)\n",
    "\n",
    "features=credit_cards[features_columns]\n",
    "labels=credit_cards['Class']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\sorfware_install\\python_install\\lib\\site-packages\\ipykernel_launcher.py:3: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    }
   ],
   "source": [
    "#对amount进行标准化处理\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "credit_cards['Amount'] = StandardScaler().fit_transform(credit_cards['Amount'].reshape(-1, 1))\n",
    "credit_cards=credit_cards.drop([\"Time\"],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>V1</th>\n",
       "      <th>V2</th>\n",
       "      <th>V3</th>\n",
       "      <th>V4</th>\n",
       "      <th>V5</th>\n",
       "      <th>V6</th>\n",
       "      <th>V7</th>\n",
       "      <th>V8</th>\n",
       "      <th>V9</th>\n",
       "      <th>V10</th>\n",
       "      <th>...</th>\n",
       "      <th>V21</th>\n",
       "      <th>V22</th>\n",
       "      <th>V23</th>\n",
       "      <th>V24</th>\n",
       "      <th>V25</th>\n",
       "      <th>V26</th>\n",
       "      <th>V27</th>\n",
       "      <th>V28</th>\n",
       "      <th>Amount</th>\n",
       "      <th>Class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1.359807</td>\n",
       "      <td>-0.072781</td>\n",
       "      <td>2.536347</td>\n",
       "      <td>1.378155</td>\n",
       "      <td>-0.338321</td>\n",
       "      <td>0.462388</td>\n",
       "      <td>0.239599</td>\n",
       "      <td>0.098698</td>\n",
       "      <td>0.363787</td>\n",
       "      <td>0.090794</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.018307</td>\n",
       "      <td>0.277838</td>\n",
       "      <td>-0.110474</td>\n",
       "      <td>0.066928</td>\n",
       "      <td>0.128539</td>\n",
       "      <td>-0.189115</td>\n",
       "      <td>0.133558</td>\n",
       "      <td>-0.021053</td>\n",
       "      <td>0.244964</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.191857</td>\n",
       "      <td>0.266151</td>\n",
       "      <td>0.166480</td>\n",
       "      <td>0.448154</td>\n",
       "      <td>0.060018</td>\n",
       "      <td>-0.082361</td>\n",
       "      <td>-0.078803</td>\n",
       "      <td>0.085102</td>\n",
       "      <td>-0.255425</td>\n",
       "      <td>-0.166974</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.225775</td>\n",
       "      <td>-0.638672</td>\n",
       "      <td>0.101288</td>\n",
       "      <td>-0.339846</td>\n",
       "      <td>0.167170</td>\n",
       "      <td>0.125895</td>\n",
       "      <td>-0.008983</td>\n",
       "      <td>0.014724</td>\n",
       "      <td>-0.342475</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.358354</td>\n",
       "      <td>-1.340163</td>\n",
       "      <td>1.773209</td>\n",
       "      <td>0.379780</td>\n",
       "      <td>-0.503198</td>\n",
       "      <td>1.800499</td>\n",
       "      <td>0.791461</td>\n",
       "      <td>0.247676</td>\n",
       "      <td>-1.514654</td>\n",
       "      <td>0.207643</td>\n",
       "      <td>...</td>\n",
       "      <td>0.247998</td>\n",
       "      <td>0.771679</td>\n",
       "      <td>0.909412</td>\n",
       "      <td>-0.689281</td>\n",
       "      <td>-0.327642</td>\n",
       "      <td>-0.139097</td>\n",
       "      <td>-0.055353</td>\n",
       "      <td>-0.059752</td>\n",
       "      <td>1.160686</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.966272</td>\n",
       "      <td>-0.185226</td>\n",
       "      <td>1.792993</td>\n",
       "      <td>-0.863291</td>\n",
       "      <td>-0.010309</td>\n",
       "      <td>1.247203</td>\n",
       "      <td>0.237609</td>\n",
       "      <td>0.377436</td>\n",
       "      <td>-1.387024</td>\n",
       "      <td>-0.054952</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.108300</td>\n",
       "      <td>0.005274</td>\n",
       "      <td>-0.190321</td>\n",
       "      <td>-1.175575</td>\n",
       "      <td>0.647376</td>\n",
       "      <td>-0.221929</td>\n",
       "      <td>0.062723</td>\n",
       "      <td>0.061458</td>\n",
       "      <td>0.140534</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.158233</td>\n",
       "      <td>0.877737</td>\n",
       "      <td>1.548718</td>\n",
       "      <td>0.403034</td>\n",
       "      <td>-0.407193</td>\n",
       "      <td>0.095921</td>\n",
       "      <td>0.592941</td>\n",
       "      <td>-0.270533</td>\n",
       "      <td>0.817739</td>\n",
       "      <td>0.753074</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.009431</td>\n",
       "      <td>0.798278</td>\n",
       "      <td>-0.137458</td>\n",
       "      <td>0.141267</td>\n",
       "      <td>-0.206010</td>\n",
       "      <td>0.502292</td>\n",
       "      <td>0.219422</td>\n",
       "      <td>0.215153</td>\n",
       "      <td>-0.073403</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 30 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         V1        V2        V3        V4        V5        V6        V7  \\\n",
       "0 -1.359807 -0.072781  2.536347  1.378155 -0.338321  0.462388  0.239599   \n",
       "1  1.191857  0.266151  0.166480  0.448154  0.060018 -0.082361 -0.078803   \n",
       "2 -1.358354 -1.340163  1.773209  0.379780 -0.503198  1.800499  0.791461   \n",
       "3 -0.966272 -0.185226  1.792993 -0.863291 -0.010309  1.247203  0.237609   \n",
       "4 -1.158233  0.877737  1.548718  0.403034 -0.407193  0.095921  0.592941   \n",
       "\n",
       "         V8        V9       V10  ...         V21       V22       V23  \\\n",
       "0  0.098698  0.363787  0.090794  ...   -0.018307  0.277838 -0.110474   \n",
       "1  0.085102 -0.255425 -0.166974  ...   -0.225775 -0.638672  0.101288   \n",
       "2  0.247676 -1.514654  0.207643  ...    0.247998  0.771679  0.909412   \n",
       "3  0.377436 -1.387024 -0.054952  ...   -0.108300  0.005274 -0.190321   \n",
       "4 -0.270533  0.817739  0.753074  ...   -0.009431  0.798278 -0.137458   \n",
       "\n",
       "        V24       V25       V26       V27       V28    Amount  Class  \n",
       "0  0.066928  0.128539 -0.189115  0.133558 -0.021053  0.244964      0  \n",
       "1 -0.339846  0.167170  0.125895 -0.008983  0.014724 -0.342475      0  \n",
       "2 -0.689281 -0.327642 -0.139097 -0.055353 -0.059752  1.160686      0  \n",
       "3 -1.175575  0.647376 -0.221929  0.062723  0.061458  0.140534      0  \n",
       "4  0.141267 -0.206010  0.502292  0.219422  0.215153 -0.073403      0  \n",
       "\n",
       "[5 rows x 30 columns]"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "credit_cards.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#进行交叉验证的样本划分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "features_train, features_test, labels_train, labels_test = train_test_split(features, \n",
    "                                                                            labels, \n",
    "                                                                            test_size=0.2, \n",
    "                                                                            random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 对于y进行过采样操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "oversampler=SMOTE(random_state=0)\n",
    "os_features,os_labels=oversampler.fit_sample(features_train,labels_train) # y1,y2,y3...yn 到各个样本欧式距离，排序后划分生成对应样本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1    227454\n",
       "0    227454\n",
       "dtype: int64"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看样本y具体信息\n",
    "pd.value_counts(os_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#可以进行交叉验证查看结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-------------------------------------------\n",
      "C parameter:  0.01\n",
      "-------------------------------------------\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\sorfware_install\\python_install\\lib\\site-packages\\sklearn\\utils\\validation.py:578: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iteration  1 : recall score =  0.890322580645\n",
      "Iteration  2 : recall score =  0.894736842105\n",
      "Iteration  3 : recall score =  0.968861347792\n",
      "Iteration  4 : recall score =  0.95763950715\n",
      "Iteration  5 : recall score =  0.958244028973\n",
      "\n",
      "Mean recall score  0.933960861333\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  0.1\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.890322580645\n",
      "Iteration  2 : recall score =  0.894736842105\n",
      "Iteration  3 : recall score =  0.970233484563\n",
      "Iteration  4 : recall score =  0.959222255196\n",
      "Iteration  5 : recall score =  0.960442290148\n",
      "\n",
      "Mean recall score  0.934991490532\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  1\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.890322580645\n",
      "Iteration  2 : recall score =  0.894736842105\n",
      "Iteration  3 : recall score =  0.970521190661\n",
      "Iteration  4 : recall score =  0.959914707466\n",
      "Iteration  5 : recall score =  0.956298567833\n",
      "\n",
      "Mean recall score  0.934358777742\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  10\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.890322580645\n",
      "Iteration  2 : recall score =  0.894736842105\n",
      "Iteration  3 : recall score =  0.970543321899\n",
      "Iteration  4 : recall score =  0.96033237709\n",
      "Iteration  5 : recall score =  0.960739055407\n",
      "\n",
      "Mean recall score  0.935334835429\n",
      "\n",
      "-------------------------------------------\n",
      "C parameter:  100\n",
      "-------------------------------------------\n",
      "\n",
      "Iteration  1 : recall score =  0.890322580645\n",
      "Iteration  2 : recall score =  0.894736842105\n",
      "Iteration  3 : recall score =  0.970764634281\n",
      "Iteration  4 : recall score =  0.960299403172\n",
      "Iteration  5 : recall score =  0.96083797716\n",
      "\n",
      "Mean recall score  0.935392287473\n",
      "\n",
      "   C_parameter Mean recall score\n",
      "0         0.01          0.933961\n",
      "1         0.10          0.934991\n",
      "2         1.00          0.934359\n",
      "3        10.00          0.935335\n",
      "4       100.00          0.935392\n",
      "*********************************************************************************\n",
      "Best model to choose from cross validation is with C111 parameter =  100.0\n",
      "*********************************************************************************\n"
     ]
    }
   ],
   "source": [
    "os_features = pd.DataFrame(os_features)\n",
    "os_labels = pd.DataFrame(os_labels)\n",
    "best_c = printing_Kfold_scores(os_features,os_labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall metric in the testing dataset:  0.90099009901\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x16e1b898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = best_c, penalty = 'l1')\n",
    "lr.fit(os_features,os_labels.values.ravel())\n",
    "y_pred_undersample = lr.predict(features_test)\n",
    "\n",
    "# Compute confusion matrix\n",
    "cnf_matrix = confusion_matrix(labels_test,y_pred_undersample)\n",
    "np.set_printoptions(precision=2)\n",
    "\n",
    "print(\"Recall metric in the testing dataset: \", cnf_matrix[1,1]/(cnf_matrix[1,0]+cnf_matrix[1,1]))\n",
    "\n",
    "# Plot non-normalized confusion matrix\n",
    "class_names = [0,1]\n",
    "plt.figure()\n",
    "plot_confusion_matrix(cnf_matrix\n",
    "                      , classes=class_names\n",
    "                      , title='Confusion matrix')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#更局模型查看实际情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "treshods:0.1Recall metric in the testing dataset:  0.950495049505\n",
      "treshods:0.2Recall metric in the testing dataset:  0.940594059406\n",
      "treshods:0.3Recall metric in the testing dataset:  0.910891089109\n",
      "treshods:0.4Recall metric in the testing dataset:  0.910891089109\n",
      "treshods:0.5Recall metric in the testing dataset:  0.910891089109\n",
      "treshods:0.6Recall metric in the testing dataset:  0.90099009901\n",
      "treshods:0.7Recall metric in the testing dataset:  0.90099009901\n",
      "treshods:0.8Recall metric in the testing dataset:  0.891089108911\n",
      "treshods:0.9Recall metric in the testing dataset:  0.871287128713\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAAAIBOUQwBAAAAAAAAAHSKYggAAAAAAAAAoFMUQwAAAAAAAAAAnaIYAgAAAAAAAADoFMUQwKSo\nqgVV9aOquqiqPl9Va92Da+1eVacMHj+zqg5Zxtj1q+ofV+Ie76yqNwy7f4kxR1fV81bgXltV1UUr\nOkcAAKYv+XeZYJcA5wAAIABJREFU4+VfAICOkX+XOV7+BZgmFEMAk+XO1toOrbWHJbkrySvGH6wx\nK/wZ1Fqb21r792UMWT/JCodhAAC4h+RfAAD6RP4FYNpTDAFMhe8ledCgIvanVfWRJOcnuX9V7VFV\nZ1XV+YMK4nWSpKr2rKpLquqMJH+38EJV9ZKq+vDg8SZVdVJVXTDY/jrJvyd54KAq+T8G495YVedU\n1YVVdei4a721qi6tqv9Nsu3yXkRVvXxwnQuq6gtLVDv/TVV9r6p+VlVPH4yfXVX/Me7e/3BP30gA\nAGYE+Vf+BQDoE/lX/gWYlhRDAJOqquYkeUqSHw92bZvkmNbaI5PcnuRtSf6mtbZjknOTvK6q7pXk\nv5M8I8ljk9x3KZc/Isl3WmuPSLJjkouTHJLk54Oq5DdW1R5JtkmyS5Idkjyqqh5XVY9Ksk+SR2Ys\nbO88xMv5Ymtt58H9fprkgHHHtkry+CRPS/LRwWs4IMmtrbWdB9d/eVU9YIj7AAAwQ8m/8i8AQJ/I\nv/IvwHQ2Z9QTADprzar60eDx95J8IsmmSa5qrX1/sH/XJNsnObOqkmT1JGcl2S7Jla21y5Kkqj6b\n5MAJ7vHEJPsnSWttQZJbq+reS4zZY7D9cPB8nYyF43WTnNRau2Nwj7lDvKaHVdW7MtaKbZ0kp487\ndkJr7e4kl1XVFYPXsEeSh9ef1pP7i8G9fzbEvQAAmFnkX/kXAKBP5F/5F2DaUwwBTJY7W2s7jN8x\nCLy3j9+V5OuttX2XGLdDkraK5lFJ3t1a+9gS93jNStzj6CTPbq1dUFUvSbL7uGNLXqsN7v3PrbXx\noTlVtdUK3hcAgOlP/pV/AQD6RP6VfwGmPctkAKP0/SS7VdWDkqSq1qqqBye5JMkDquqBg3H7LuX8\nbyQ5aHDu7KpaL8ltGav6Xej0JC8btxbdZlW1cZLvJnlOVa1ZVetmrCXb8qyb5NqqWi3Jfksc26uq\nZg3mvHWSSwf3PmgwPlX14Kpae4j7AADQTfIvAAB9Iv8CMFI6QwAj01r79aDC9tiqWmOw+22ttZ9V\n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\n6Dv5l2EtTf694U8z891LrsyfZ96eO+6clfMvujTbbv7wBa53192z85Xv/CJPGfw1XJJMnTol+++5\ndc654Mfj92DApDdr1qwcfOAz8uyDD8nTnn7A/PFPnPmxnPfVr+SMMz85vxj44h/9MMe/5tXZbJMN\n8973nJa3n/KW/Of73jtRS4clkn8nhvzLsJYm/87zrCduv0BXiJ233ijbbbFBLv/qSfnmR1+ZTR+x\ndi740MuTJL+55o95yovel10PeVs+e/4lufp6ndGApXf99dfn2c96ek7/yJl55MYb3/sJMIHk3+GN\nZWeInZJc2Vq7qrV2d5Kzkuw/hvdjObTyitOz6sorzH+91z9unkt/e2O+/O2fz/+Lt002WDvTHzAt\nN99yW9Z80KqZMmXk320brveQbLLBWrn6+pszdeqUPGSNVZKM7Jn8pN23yqWDquGNN1hr/v323W3L\nXHmdMAwkN910U2bOnJkkueOOO/Ktb16YzTZ/dHZ/3D/nC58b2U7nEx//WPZ7ylOTJOtvsEG+9a0L\nkySXX3ZZ7rzzzqy11lqLvjjQV/Iv92pp8+83/vdX2WrT9bLSig/I1KlTstv2m+Syq/6QVVaanoet\nOfIX3VOnTsk+u26RX1/zx/n32XPnzfKba/6YG/40c/wfEpiUWmt54QuOzGabPzovf+Wr5o9//YLz\n8853nJpzvnBuVl555fnjF377u/n1ldfk11dek5e87BX5t+Nem2Ne/JKJWDowecm/3Kulzb/JSJfO\nA/beNmdfcMn863zo7IvyyCccn833e0P2fO67csW1f8oTX/DuJMlagyKKqspxL3hiPnTOReP5iEAH\nzJw5Mwc8db+88c1vzT/tuutELwdYhqaN4bXXS3LdqPfXJ9l54UlVdVSSo5IkD9B6sW/Wfshq+cy/\nvyDJSAvgz3xtRr7xv5flAdOm5gMnHpIZZ782d8+ak+e//uNJksdut0lOOGa/zJ4zJ3PmtLz05LNy\ny9/+npVXnJ5z3/fiPGDa1EydOiXf+uHl+cjnv5ckOebZu+efd948s2bPycy//T0vOOHMCXteYPL4\nw+9/nxcceUTmzpmTuXPn5oBnPitP2u/JefSjt8hhhx6ck048IVtvvW2OeO6RSZJTTn1HXnzMUXnv\nu09LqvLB0z86/6/mYPIp//qcGPIv92pp8+/MW+/Iez7xzVz0iVentZYLLro05190adZ+8Go557Sj\n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\nriI/+7UzAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1d0b8438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "lr = LogisticRegression(C = best_c, penalty = 'l1')\n",
    "lr.fit(os_features,os_labels.values.ravel())\n",
    "#最后预测出来阀值\n",
    "y_pred_undersample_proba = lr.predict_proba(features_test)\n",
    "thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
    "plt.figure(figsize=(30,26))\n",
    "\n",
    "j = 1\n",
    "for i in thresholds:\n",
    "    # 将ndarray变成boolean数组\n",
    "    y_test_predictions_high_recall = y_pred_undersample_proba[:,1] > i\n",
    "    # print(y_test_predictions_high_recall)\n",
    "    # print(y_test_undersample)\n",
    "    plt.subplot(3,3,j)\n",
    "    j += 1\n",
    "    \n",
    "    # Compute confusion matrix\n",
    "    cnf_matrix = confusion_matrix(labels_test,y_test_predictions_high_recall)\n",
    "    np.set_printoptions(precision=2)\n",
    "\n",
    "    print(\"treshods:{}Recall metric in the testing dataset: \".format(i), cnf_matrix[1,1]/(cnf_matrix[1,0]+cnf_matrix[1,1]))\n",
    "\n",
    "    # Plot non-normalized confusion matrix\n",
    "    class_names = [0,1]\n",
    "    plot_confusion_matrix(cnf_matrix\n",
    "                          , classes=class_names\n",
    "                          , title='Threshold >= %s'%i) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
